检查数组列表是否具有相同的值

时间:2013-02-22 12:59:09

标签: c#

我有一个所有整数数组的列表,我想在其中检查列表是否具有相同的值,即-1。

代表

int[] intk= {-1,-1,-1,-1,-1,-1};
int[] intl = { -1, -1, -1, -1, -1, -1 };
List<int[]> lst = new List<int[]>();
lst.Add(intk);
lst.Add(intl);

如何找到lst只有-1。

3 个答案:

答案 0 :(得分:4)

使用SelectMany展开您的列表,然后检查所有内容是否相同:

int value = -1;
bool allSame = lst.SelectMany(a => a).All(i => i == value);

答案 1 :(得分:0)

您可以使用与LINQ捆绑在一起的.All(...)扩展方法来检查。

为了创建包含两个数组项的列表,您应该使用.AddRange(...)T的{​​{1}}参数应该是List<T>而不是int

int[]

现在您可以使用int[] intk= {-1,-1,-1,-1,-1,-1}; int[] intl = { -1, -1, -1, -1, -1, -1 }; List<int> lst = new List<int>(); lst.AddRange(intk); lst.AddRange(intl);

.All(...)

...或:

bool result = lst.All(item => item == 1);

答案 2 :(得分:0)

如果您想检查任何相同的值,不仅仅是-1。

,这将有效
var l = lst.SelectMany(_ => _);
bool areSame = l.All(_ => l.FirstOrDefault() == _);