C#のQueryable LongCountメソッドで要素数を取得する方法
C#のLINQには、シーケンス内の要素数を取得するためのLongCountメソッドが用意されています。LongCountは戻り値がlong型である点が特徴で、要素数がint型(Int32)の最大値を超える可能性がある大きなコレクションを扱う場合に特に便利です。
ここでは、QueryableのLongCountメソッドを使って配列の要素数を取得する方法を解説します。
サンプルデータの準備
まず、次のような文字列型の配列を用意します。
string[] emp = { "Jack", "Mark" };LongCountメソッドの呼び出し方
AsQueryable()メソッドで配列をIQueryableに変換し、その後LongCount()を呼び出します。
emp.AsQueryable().LongCount();
これにより、配列内の要素数がlong型の値として返されます。
完全なサンプルコード
以下に、全体のコード例を示します。
using System;
using System.Collections.Generic;
using System.Linq;
class Demo {
static void Main() {
string[] emp = { "Jack", "Mark" };
long res = emp.AsQueryable().LongCount();
Console.WriteLine("{0} employees in the Department", res);
}
}実行結果
2 employees in the Department
補足:Countメソッドとの違い
通常の規模のコレクションであればCount()メソッドでも十分ですが、LongCount()はlong型で結果を返すため、非常に大量のデータを扱う場合や、将来的な拡張性を考慮したい場合に適しています。また、条件を指定することも可能で、emp.AsQueryable().LongCount(e => e.StartsWith("J"))のように記述すれば、特定の条件に一致する要素だけをカウントできます。
-
C#のGroupBy()メソッドとは?要素をグループ化する使い方を解説
GroupBy()メソッドとはC#のGroupBy()は、System.Linq名前空間に用意されている拡張メソッドの一つです。指定したキー値に基づいてコレクション内の要素をグループ化し、その結果をIEnumerable<IGrouping<TKey, TElement>>として返します。各グループにはKeyプロパティが割り当てられ、同じキーを持つ要素がひとつのまとまりとして扱われます。サンプルコードまず、次のような整数型の配列を用意します。int[] arr = { 2, 30, 45, 60, 70 };この配列に対してGroupBy()を使い、「50以下の要素」と
-
C#のCompareTo()メソッドの使い方を解説
C#では、2つの値を比較する際にCompareTo()メソッドを使用します。このメソッドは、呼び出し元の値と引数で渡した値を比較し、その大小関係を整数値として返します。CompareTo()メソッドの戻り値CompareTo()メソッドの戻り値は以下の3パターンです。0 = 両方の値が等しい場合1 = 呼び出し元の値が引数の値より大きい場合(第2の数値が小さい)-1 = 呼び出し元の値が引数の値より小さい場合(第1の数値が小さい)CompareTo()メソッドの実装例それでは、C#でCompareTo()メソッドを実装するサンプルコードを見てみましょう。ここでは、同じ値を持つ2つのint型変数