You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现C#方法:从字符串列表中返回重复n次的单词?

实现查找重复n次单词的方法

方法一:手动用Dictionary统计次数

你可以通过Dictionary<string, int>记录每个单词的出现次数,配合foreach循环完成统计和查找:

var words = new List<String> {"Mike", "Mia" ,"Mike", "Frank" ,"Mike", "Lisa", "Joss", "Frank" };
int number = 3;

String find(List<String> lst, int n) 
{
    // 初始化字典,键为单词,值为出现次数
    var wordCount = new Dictionary<string, int>();
    
    // 遍历列表统计次数
    foreach (var word in lst)
    {
        if (wordCount.ContainsKey(word))
        {
            // 单词已存在,计数+1
            wordCount[word]++;
        }
        else
        {
            // 单词首次出现,初始化计数为1
            wordCount[word] = 1;
        }
    }
    
    // 遍历字典寻找出现次数等于n的单词
    foreach (var pair in wordCount)
    {
        if (pair.Value == n)
        {
            return pair.Key;
        }
    }
    
    // 没有找到符合条件的单词时返回null(可根据需求调整为空字符串)
    return null;
}

// 调用示例
var result = find(words, number); // result会是"Mike"

方法二:用LINQ简化实现

如果项目允许使用LINQ,可以用更简洁的代码完成需求,核心是通过GroupBy分组后统计每组的元素数量:

using System.Linq; // 需引入LINQ命名空间

var words = new List<String> {"Mike", "Mia" ,"Mike", "Frank" ,"Mike", "Lisa", "Joss", "Frank" };
int number = 3;

String find(List<String> lst, int n) 
{
    return lst.GroupBy(word => word)
              .Where(group => group.Count() == n)
              .Select(group => group.Key)
              .FirstOrDefault(); // 返回第一个符合条件的单词,无匹配则返回null
}

// 调用示例
var result = find(words, number); // result会是"Mike"

说明

  • 两种方法都能实现需求:手动统计适合理解底层计数逻辑,LINQ写法更简洁高效。
  • 如果存在多个出现次数等于n的单词,两种方法都会返回第一个匹配的单词;若要返回所有匹配项,可修改返回类型为List<string>并调整对应逻辑。

内容的提问来源于stack exchange,提问作者Andrés Calderón

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 20:51:34