带有简单int[]的IEnumerable Any()



快速问题:我正在将EF4 EntityCollection中实体的ID与循环中的简单int[]进行比较。我想做一些类似的事情:

for (int i = 0; i < Collection.Count; ++i)
{
    Array.Any(a => a.value == Collection[i].ID) ? /* display yes */ : /* display no */;
}

我只是不确定如何将数组中的值与EntityCollection中的值进行比较,或者换言之,不确定将什么用于real,而不是我上面构建的value属性。

应该将代码修改为:

int[] arr = //this is the integer array
IEnumerable Collection = //This is your EF4 collection
for (int i = 0; i < Collection.Count; ++i)
{
    arr.Any(a => a == Collection[i].ID) ? /* display yes */ : /* display no */;
}

我在顶部列出了一些变量,只是为了让我们清楚什么是什么。改变的主要部分是,我们调用的不是Array.Any,而是arr.AnyAnyint[]的Extension方法,因此您可以在数组本身上调用它,而不是在类Array上调用它。

这能解决问题吗?

跳过循环,您可以执行类似的操作

array.Any(a => collection.Any(c => c.ID == a)) ? /* display yes */ : /* display no */;

如果你需要循环,那么你可以跳过上面的第二个Any(),进行

array.Any(a => collection.ElementAt(i).ID == a) ? /* display yes */ : /* display no */;

相关内容

  • 没有找到相关文章

最新更新