概要
UnionBy
メソッドは、2つのシーケンスを取り込み、指定されたプロパティによって一意の要素を返すLINQのメソッドです。通常のUnion
メソッドとは異なり、UnionBy
メソッドはプロパティによって一致する要素をマージします。このメソッドを使用することで、重複した要素を省略したシーケンスを作成することができます。
この記事ではUnionByメソッドの使用方法を説明します。
公式サイト情報はコチラを参照してください。
構文
public static IEnumerable UnionBy<TSource, TKey>( this IEnumerable first, IEnumerable second, Func<TSource, TKey> keySelector);
UnionBy
メソッドは、2つのIEnumerable
型の引数と、Func
型のkeySelector
引数を取ります。keySelector
引数は、シーケンスから一意のキーを抽出するために使用されます。
使用例
以下の例では、2つのPerson
オブジェクトのコレクションを作成し、UnionBy
メソッドを使用して、両方のコレクションの要素を結合し、重複する要素を削除しています。この例では、Person
クラスのId
プロパティを使用して、重複する要素を特定します。
class Person { public int Id { get; set; } public string Name { get; set; } } IEnumerable firstList = new List() { new Person { Id = 1, Name = "John" }, new Person { Id = 2, Name = "Jane" }, new Person { Id = 3, Name = "Mary" } }; IEnumerable secondList = new List() { new Person { Id = 1, Name = "John" }, new Person { Id = 4, Name = "Bill" }, new Person { Id = 5, Name = "Lucy" } }; IEnumerable uniqueList = firstList.UnionBy(secondList, p => p.Id); foreach (var person in uniqueList) { Console.WriteLine(person.Name); }
このコードを実行すると、以下の出力が得られます。
John Jane Mary Bill Lucy
.NET クラス Tips 一覧
これまでに紹介した .NET Tips 一覧はこちら。
Please follow and like us:
コメント