C#で配列の最初の要素のインデックスを取得する方法
C#で配列の最初の要素のインデックスを取得するには、Array.GetLowerBound(0)メソッドを使用します。このメソッドは、指定した次元における配列の下限(最小インデックス)を返します。
通常のC#配列はインデックス0から始まるため、GetLowerBound(0)は常に「0」を返します。引数の「0」は、対象となる次元(0番目=最初の次元)を指定するものです。
例1:文字列配列の場合
以下のコードでは、文字列配列に対して各種プロパティの状態を確認しつつ、最初の要素のインデックスを取得しています。
using System;
public class Demo {
public static void Main() {
string[] products = new string[] { "Andy", "Mark", "Gary", "Andre"};
Console.WriteLine("One or more name begin with 'A'? = {0}",
Array.Exists(products, ele => ele.StartsWith("A")));
Console.WriteLine("Is the array having fixed size? = " + products.IsFixedSize);
Console.WriteLine("Is the array read only? = " + products.IsReadOnly);
Console.WriteLine("Is the array synchronized? = " + products.IsSynchronized);
Console.WriteLine("Index of the 1st element = "+products.GetLowerBound(0));
}
}
出力結果
One or more name begin with 'A'? = True Is the array having fixed size? = True Is the array read only? = False Is the array synchronized? = False Index of the 1st element = 0
コードのポイント
- Array.Exists():条件を満たす要素が配列内に存在するかを判定します。ここでは「A」で始まる名前があるかをラムダ式でチェックしています。
- IsFixedSize:配列は固定サイズを持つため、常にTrueが返されます。
- IsReadOnly:通常の配列は読み書き可能なため、Falseが返されます。
- IsSynchronized:スレッドセーフ(同期アクセス対応)かどうかを示すプロパティです。通常の配列はFalseです。
例2:空の配列の場合
空の配列に対してGetLowerBound(0)を呼び出した場合も、例外は発生せず「0」が返されます。これは覚えておくと便利な挙動です。
using System;
public class Demo {
public static void Main() {
string[] products = new string[] { };
Console.WriteLine("Is the array having fixed size? = " + products.IsFixedSize);
Console.WriteLine("Is the array read only? = " + products.IsReadOnly);
Console.WriteLine("Is the array synchronized? = " + products.IsSynchronized);
Console.WriteLine("Index of the 1st element = "+products.GetLowerBound(0));
}
}
出力結果
Is the array having fixed size? = True Is the array read only? = False Is the array synchronized? = False Index of the 1st element = 0
まとめ
配列の最初の要素のインデックスを取得したい場合は、GetLowerBound(0)を使います。C#の標準的な配列は必ず0始まりなので、実用上はほぼ常に0が返ります。ただし、多次元配列や非ゼロベースの配列を扱う場合には、下限を動的に確認できるこのメソッドが重要になります。
-
C#で配列の最初の要素を表示するプログラム
C#では、LINQのFirst()メソッドを使うことで、配列の最初の要素を簡単に取得できます。この記事では、AsQueryable()メソッドと組み合わせて、配列の先頭要素を表示する具体的な手順を解説します。使用する配列まず、今回扱う配列は以下の通りです。double[] myArr = {20.5, 35.6, 45.7, 55.6, 79.7};最初の要素を取得する方法配列の最初の要素を取得するには、First()メソッドを使用します。配列に対してAsQueryable()メソッドを呼び出してクエリ可能な形式に変換し、その後にFirst()メソッドを適用します。myArr.AsQuerya
-
PythonでKより大きい最初の要素のインデックスを取得する方法
Pythonのリスト内の要素は、必ずしもソートされた順序で並んでいるとは限りません。また、特定の値よりも大きい値だけに関心があるケースも少なくありません。この記事では、リスト内でKより大きい値を持つ最初の要素のインデックスを取得する方法を、複数のアプローチから解説します。方法1:enumerate()とnext()を組み合わせるenumerate()関数を使うと、リスト内の各要素についてインデックスと値の両方を同時に取得できます。そこに「25より大きい」という条件を適用し、条件を満たす最初の要素だけを取り出します。next()関数がリストの各要素を順番に処理し、条件が成立した時点で結果を返しま