0

値{"data1"、 "data2"、"data3"}を含むstring[]があります。

と私はを含むGenericListを持っています

data2

data4

2つのレコード

string[]とgenericListで利用できる共通データを取得したい

4

3 に答える 3

5

次のようなことを試しましたか

string[] s = {"data1", "data2", "data3"};
List<string> list = new List<string> { "data2", "data3" };
var commonList = list.Intersect(s);

Enumerable.Intersect メソッド (IEnumerable、IEnumerable) をご覧ください。

于 2010-12-17T07:37:36.213 に答える
2

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();

また、これはセット操作であることにも注意してください。そのため、元のコレクションの両方で特定の要素の重複があったとしても、結果には重複が含まれません。

于 2010-12-17T07:38:10.157 に答える
0

ここ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を出力します。

于 2010-12-17T07:41:41.413 に答える