22

linqで一般的なプログラミングタスクを実行する方法について質問があります。

さまざまなコレクションまたは配列を実行しているとしましょう。私がやりたいのは、配列間で要素を一致させることです。一致する場合は、その要素を使用して何かを実行します。

例えば:

        string[] collection1 = new string[] { "1", "7", "4" };
        string[] collection2 = new string[] { "6", "1", "7" };

        foreach (string str1 in collection1)
        {
            foreach (string str2 in collection2)
            {
                if (str1 == str2)
                {
                    // DO SOMETHING EXCITING///
                }
            }
        }

これは明らかに上記のコードを使用して達成できますが、LinqtoObjectsを使用してこれを実行できる高速で適切な方法があるかどうか疑問に思っていますか?

ありがとう!

4

2 に答える 2

30

はい、交差します-説明のためのコードサンプル。

string[] collection1 = new string[] { "1", "7", "4" };
string[] collection2 = new string[] { "6", "1", "7" };

var resultSet = collection1.Intersect<string>(collection2);

foreach (string s in resultSet)
{
    Console.WriteLine(s);
}
于 2010-01-25T02:11:49.900 に答える
13

一致に対して任意のコードを実行したい場合、これはLINQ-yの方法です。

var query =
   collection1のstr1から
   str1のcollection2のstr2に参加してstr2に等しい
   str1を選択します。

foreach(クエリ内のvarアイテム)
{{
     //何か楽しいことをする
     Console.WriteLine(item);
}
于 2010-01-25T02:11:14.557 に答える