【发布时间】:2017-04-23 17:39:26
【问题描述】:
我有一个字符串数组,我想在数组中找到那些出现4次或4次以上的元素。
我的代码
internal static void ProcessArray(string[] numArray)
{
string response = string.Empty;
var duplicates = (numArray
.GroupBy(e => e)
.Where(e => e.Count() >= 4)
.Select(e => e.First())).ToList();
//do some further business logic
}
所以 duplicate 应该返回一个包含该元素的字符串列表。
我在下面的方法中调用它
Public static string GetDuplicates()
{
string[] s = new new string[]{" 1","1","2","2","2","1","3,"2","1" }
string result = ProcessArray(s);
return result
}
它只返回列表中的2,正确的结果应该是列表中的1,2。
【问题讨论】:
-
请把它放在一起作为minimal reproducible example,而不是方法的一部分和输入的一部分。
-
您的第一个
1有空格。使用Trim截断它,或者如果您只使用整数将输入解析为int使用 Array.ConvertAll -
@JonSkeet 我已经更正了
-
您尚未提供minimal reproducible example。我可以复制/粘贴/编译/运行您的代码并查看不正确的结果吗?不...