C# 获取数组中出现次数为4次的元素
我有一个字符串数组,我想找到数组中出现次数为4次或4次以上的元素 我的代码C# 获取数组中出现次数为4次的元素,c#,arrays,linq,C#,Arrays,Linq,我有一个字符串数组,我想找到数组中出现次数为4次或4次以上的元素 我的代码 internal static void ProcessArray(string[] numArray) { string response = string.Empty; var duplicates = (numArray .GroupBy(e => e)
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
var values = new string [] { "1", "1", "2", "2", "2", "1", "3", "2", "1" };
var groups = values.GroupBy(i => i).Select(i => new { Number = i.Key, Count = i.Count() });
foreach(var item in groups)
{
if(item.Count == 4)
{
Console.WriteLine(item.Number);
}
}
请把它作为方法和输入的一部分而不是一部分放在一起。你的第一个1有空格。使用Trim截断它,或者如果您只使用integer,则使用Array将输入解析为int。ConvertAll@JonSkeet我已经改正了你没有提供答案。我可以复制/粘贴/编译/运行您的代码并查看错误的结果吗?不…信不信由你,不是我;-我发表评论并不意味着我投了反对票或赞成票-@CodeNotFound我不是指你!很抱歉