2

簡単な質問:EF4EntityCollection内のエンティティのIDをループ内の単純なint[]と比較しています。私は次のようなことをしたいと思います:

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

配列内の値をEntityCollectionの値と比較する方法、つまり、上記で作成したvalueプロパティの代わりに実際に何を使用するかがわかりません。

4

2 に答える 2

1

ループをスキップすると、次のようなことができます

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

ループが必要な場合は、Any()上から2番目をスキップして実行できます

array.Any(a => collection.ElementAt(i).ID == a) ? /* display yes */ : /* display no */;
于 2011-06-10T21:03:48.077 に答える
1

コードは次のように変更する必要があります。

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.Anyでした。 Anyはの拡張メソッドであるためint[]、クラスではなく配列自体で呼び出しますArray

これで問題は解決しますか?

于 2011-06-10T21:05:26.890 に答える