2 つのリストの差集合を見つける方法 (LINQ) (C#)

この例では、LINQ を使用して、2 つの文字列リストを比較し、names2.txt ではなく names1.txt でそれらの行を出力する方法を示します。

データ ファイルを作成するには

  1. 文字列コレクションを結合および比較する方法 (LINQ) (C#)」に示されているように、ソリューション フォルダーに names1.txt と names2.txt をコピーします。

class CompareLists  
{
    static void Main()  
    {  
        // Create the IEnumerable data sources.  
        string[] names1 = System.IO.File.ReadAllLines(@"../../../names1.txt");  
        string[] names2 = System.IO.File.ReadAllLines(@"../../../names2.txt");  
  
        // Create the query. Note that method syntax must be used here.  
        IEnumerable<string> differenceQuery =  
          names1.Except(names2);  
  
        // Execute the query.  
        Console.WriteLine("The following lines are in names1.txt but not names2.txt");  
        foreach (string s in differenceQuery)  
            Console.WriteLine(s);  
  
        // Keep the console window open until the user presses a key.
        Console.WriteLine("Press any key to exit");  
        Console.ReadKey();  
    }  
}  
/* Output:  
     The following lines are in names1.txt but not names2.txt  
    Potra, Cristina  
    Noriega, Fabricio  
    Aw, Kam Foo  
    Toyoshima, Tim  
    Guy, Wey Yuan  
    Garcia, Debra  
     */  

ExceptDistinctUnion、および Concat など、C# のいくつかの種類のクエリ操作は、メソッド ベースの構文でのみ表すことができます。

コードのコンパイル

System.Linq 名前空間と System.IO 名前空間に using ディレクティブを使用して、C# コンソール アプリケーション プロジェクトを作成します。

関連項目