0

私が持っている場合:

List<String> list1  AND  List<String> list2

にないList<String>アイテムを含むを生成する最良の方法は何ですか?list1list2

4

2 に答える 2

2

あなたはlinQを使ってそれを行うことができます

var res = list1.Except(list2);

linQなしでこれを行う

List<string> listExcept = new List<string>();
foreach(string list1Item in list1)
{
   if(!list2.Contains(list1Item))
      listExcept.Add(list1Item);
}   
//here listExcept will contain all the elements present in list1 and not present in list2
于 2012-08-19T06:19:59.910 に答える
1

本当に .NET 2.0 の BCL と C# 2 の言語機能しか持っていない場合は、拡張メソッドや LINQ などを使用することはできませんHashSet<>。あなたはおそらくこう言うでしょう:

List<string> resultList = new List<string>();
foreach (string s in list1)
{
  if (!list2.Contains(s))
    resultList.Add(s);
}

あまりうまく機能しません。それが重要な場合は、最初ににDictionary<,>基づいて を作成してlist2ください。

于 2012-08-19T06:48:34.793 に答える