假设我有以下2d数组:
int[][] array = {{1,4,4,6,6,3},
{4,8,6,5,7,3},
{6,6,9,3,3,9}};
我需要找到3个或更多重复数字的所有序列, 例如,在此数组中,输出应为3,因为我们有3乘以4, 5次6次和3次3次,序列必须是对角线或水平。 我该如何解决。 请帮我。 谢谢。
答案 0 :(得分:0)
我尝试过这样的事情:
int[][] arrays = new int[][] {
new []{1,4,4,6,6,3},
new []{4,8,6,5,7,3},
new []{6,6,9,3,3,9}
};
var list = new List<int>();
foreach (var array in arrays)
list.AddRange(array);
var result = list.GroupBy(i => i)
.Select(g => new { Value = g.Key, Count = g.Count() })
.Where(x => x.Count > 2);
由于要一起使用所有数组,因此可以将它们全部放在一个列表中。在此列表中,您可以使用linq计算数字。变量结果包含所有元素,它们在列表中是3次或更多次。