C#のLinqを使ってみる(5)

こんばんは。きわさです。

C#のLinqについて色々書いてきましたが、まだまだあります。
他のものをいくつか書いていきます。

Any

これはリストの中に条件を満たす要素があるかを判定できます。

List<User> list = new List<User> () 
{ 
    // ユーザー情報
};
bool check1 = list.Any(user => user.Id == 10);
bool check2 = list.Where(user => user.Age < 20).Any();

check1は、listにIdが10のユーザーがいればtrue、
check2は、listにAgeが20未満のユーザーがいればtrueとなります。
また、check1とcheck2で書き方が違いますが、条件をWhereに書いてもAnyに書いても同様です。

bool check3 = list.Where(user => user.Age < 20).Count() > 0

のような書き方は、全ての要素を数えてしまいますが、
Anyは条件を満たすものが1つでもあればtrueを返すので、Anyを使用しましょう。

All

こちらはリストの中のすべての要素が条件を満たす場合にtrueとなります。

var check4 = list.All(user => user.Age < 20).ToList();

全てのUserのAgeが20未満かどうかを判定します。

OrderBy

リストの要素を昇順で並び替えます。

var newList = list.OrderBy(user => user.Age).ToList();

この場合はAgeが低い要素から高い要素への順になります。
OrderByの代わりにOrderByDescendingを使うと逆順の降順となります。

これらも使用頻度がわりと高いと思います。
覚えておきたいですね。

スポンサーリンク