2

我有一个所有整数数组的列表,我想在其中检查列表是否具有相同的值,即-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。

4

3 回答 3

4

用扁平化你的列表,SelectMany然后检查是否都相同:

int value = -1;
bool allSame = lst.SelectMany(a => a).All(i => i == value);
于 2013-02-22T13:01:29.697 回答
0

您可以使用.All(...)与 LINQ 捆绑的扩展方法进行检查。

为了创建一个包含两个数组项的列表,您应该使用.AddRange(...)and 的T参数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);

...或者:

bool result = lst.All(item => item == -1);
于 2013-02-22T13:06:16.693 回答
0

如果您想检查任何相同的值而不仅仅是-1,这将起作用。

var l = lst.SelectMany(_ => _);
bool areSame = l.All(_ => l.FirstOrDefault() == _);
于 2013-02-22T13:08:21.507 回答