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

发布于 2024-11-15 01:48:01 字数 321 浏览 6 评论 0原文

快速提问:我正在循环中将 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 中的值进行比较,或者换句话说,使用什么来代替我上面编写的 value 属性。

Quick question: I'm comparing the IDs of entities in an EF4 EntityCollection against a simple int[] in a loop. I'd like to do something like:

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

I'm just not sure how to compare the value within the array with the value from the EntityCollection, or, in other words, what to use for real instead of the value property I made up above.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

北渚 2024-11-22 01:48:01

代码应该修改为:

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[] 的扩展方法,因此您可以在数组本身上调用它,而不是在 Array 类上调用它。

这能解决问题吗?

The code should be modified to read:

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 */;
}

I called out a few variables at the top just so we're clear as to what is what. The major part that changed was that instead of invoking Array.Any we're invoking arr.Any. Any is an Extension method for int[] and thus you invoke it on the array itself, not on the class Array.

Does this solve the problem?

谁许谁一生繁华 2024-11-22 01:48:01

跳过循环,

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 */;

skip the loop and you can do something like this

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

if you need the loop then you can skip the second Any() from above and do

array.Any(a => collection.ElementAt(i).ID == a) ? /* display yes */ : /* display no */;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文