はじめに
「Linq.Extras」をプロジェクトに追加することで
LINQ で使用できる拡張メソッドが増えます
インストール
Visual Studio メニューの「ツール>NuGet パッケージ マネージャー>
ソリューションの NuGet パッケージの管理」を選択します
「参照」タブを選択して、検索欄に「Linq.Extras」と入力して
表示された「Linq.Extras」を選択します
インストールしたいプロジェクトをチェックして「インストール」ボタンを押します
使い方
using Linq.Extras;
「Linq.Extras」を使用する際は、ソースコードの先頭に上記の using を追加します
拡張メソッド一覧
DistinctBy, IntersectBy, UnionBy, ExceptBy, SequenceEqualBy
var result = items.DistinctBy( c => c.Name );
DistinctUntilChanged
var input = new[] { 1, 1, 1, 2, 3, 3, 1, 3, 2, 2, 1 }; var result = input.DistinctUntilChanged(); // 1, 2, 3, 1, 3, 2, 1
MinBy, MaxBy
var winner = players.MaxBy( c => c.Score );
RankBy, DenseRankBy
var ranking = players.RankByDescending( player => player.Score, ( player, rank ) => {} );
LeftOuterJoin, RightOuterJoin, FullOuterJoin
var result = left.OuterJoin( right, x => x.Id, y => y.Id, ( id, x, y ) => new { x, y } );
ToHierarchy
var roots = items.ToHierarchy( c => c.Id, c => c.ParentId );
Flatten
var flat = roots.Flatten( c => c.Children, TreeTraversalMode.DepthFirst );