C#でシーケンス内の要素数を64ビット符号付き整数として返す方法(LongCountメソッド)
LongCountメソッドとは
C#のLINQには、シーケンス内の要素数を64ビット符号付き整数(long / Int64)として返すLongCountメソッドが用意されています。通常のCountメソッドはint型(32ビット)を返しますが、要素数がint型の最大値(2,147,483,647)を超える可能性がある大規模なデータソースを扱う場合には、LongCountメソッドが有効です。
基本的な使い方
まず、文字列の配列を用意します。
string[] num = { "One", "Two", "Three", "Four", "Five" };次に、LINQのLongCountメソッドを使って要素数を取得します。AsQueryable()でクエリ可能な形式に変換してから呼び出しています。
num.AsQueryable().LongCount();
サンプルコード
以下は、LongCountメソッドを使用して配列内の要素数を取得し、コンソールに出力する完全なコード例です。
using System;
using System.Collections.Generic;
using System.Linq;
class Demo {
static void Main() {
string[] num = { "One", "Two", "Three", "Four", "Five" };
long res = num.AsQueryable().LongCount();
Console.WriteLine("{0} elements", res);
}
}実行結果
5 elements
条件を指定したカウント
LongCountメソッドは、述語(条件式)を引数に渡すことで、特定の条件を満たす要素だけをカウントすることもできます。
long res = num.AsQueryable().LongCount(s => s.Length > 3);
この例では、文字数が3より多い要素("Three"、"Four"、"Five")のみがカウントされ、結果として「3」が返されます。
-
【JavaScript】配列内の最小値を持つ要素のすべてのインデックスを取得する方法
JavaScriptで数値の配列を扱う際、「配列の中で最も小さい値(最小値)が、どの位置に存在するのか」を知りたいケースがあります。まず、次のような数値の配列を例に考えてみましょう。const arr = [1,2,3,4,1,7,8,9,1];最小値のインデックスを1つだけ取得する基本的な方法配列内の最小要素のインデックスを求めるだけであれば、Math.min()とindexOf()を組み合わせることで簡単に実現できます。const min = Math.min.apply(Math, arr); const ind = arr.indexOf(min);このコードを実行すると、変数indに
-
JavaScriptでパスカルの三角形のn行目の要素を求める方法
パスカルの三角形とは パスカルの三角形は、前の行の隣接する要素同士を足し合わせていくことで構成される、三角形状の数列配置です。各行の両端は必ず1となり、内側の各要素はそのすぐ上にある2つの要素の和になります。 パスカルの三角形の最初のいくつかの要素は以下の通りです。 求めるもの 今回は、正の整数 num を唯一の引数として受け取り、パスカルの三角形の num 行目に存在するすべての要素を配列として返すJavaScript関数を作成します。 たとえば、入力が次の場合: const num = 9; 期待される出力は以下のようになります。 const output = [1, 9, 36, 8