値{"data1"、 "data2"、"data3"}を含むstring[]があります。
と私はを含むGenericListを持っています
data2
data4
2つのレコード
string[]とgenericListで利用できる共通データを取得したい
値{"data1"、 "data2"、"data3"}を含むstring[]があります。
と私はを含むGenericListを持っています
data2
data4
2つのレコード
string[]とgenericListで利用できる共通データを取得したい
次のようなことを試しましたか
string[] s = {"data1", "data2", "data3"};
List<string> list = new List<string> { "data2", "data3" };
var commonList = list.Intersect(s);
Enumerable.Intersect メソッド (IEnumerable、IEnumerable) をご覧ください。
List<string>
それが であり、.NET 3.5 以降を使用していると仮定するとIntersect
、LINQ からオブジェクトへのメソッドを使用できます。
var intersection = stringArray.Intersect(stringList);
これは遅延評価された を返すことに注意してくださいIEnumerable<string>
。配列またはリストで必要な場合は、関連するメソッドを呼び出します。
var intersectionArray = stringArray.Intersect(stringList).ToArray();
// or
var intersectionList = stringArray.Intersect(stringList).ToList();
また、これはセット操作であることにも注意してください。そのため、元のコレクションの両方で特定の要素の重複があったとしても、結果には重複が含まれません。
ここIntersect
で拡張メソッドを見てみましょう
string[] c1 = { "data1", "data2", "data3" };
string[] c2 = { "data2", "data4" };
IEnumerable<string> both = c1.Intersect(c2);
foreach (string s in both) Console.WriteLine(s);
data2を出力します。