C#のStringCollectionで指定インデックスの要素を取得・設定する方法
C#のStringCollectionクラスでは、インデックス(添字)を使って、コレクション内の任意の位置にある文字列要素を取得したり、新しい値に設定(更新)したりすることができます。
この記事では、実際のコード例とその実行結果をもとに、指定したインデックスの要素へのアクセス方法をわかりやすく解説します。
StringCollectionとは
StringCollectionは、System.Collections.Specialized名前空間に属するコレクションクラスで、文字列専用のリストとして扱えます。配列と同様にゼロから始まるインデックスで要素にアクセスできるため、strCol[5]のように記述することで6番目の要素を参照できます。
例1:指定インデックスの要素を取得する
まず、StringCollectionに文字列を追加し、5番目のインデックスにある要素を取得する例を見てみましょう。
using System;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringCollection strCol = new StringCollection();
String[] strArr = new String[] { "A", "B", "C", "D", "E", "F", "G", "H" };
Console.WriteLine("StringCollectionの要素...");
foreach (string str in strArr) {
Console.WriteLine(str);
}
strCol.AddRange(strArr);
Console.WriteLine("インデックス5の要素 = " + strCol[5]);
Console.WriteLine("StringCollection内の文字列数 = " + strCol.Count);
}
}出力結果
StringCollectionの要素... A B C D E F G H インデックス5の要素 = F StringCollection内の文字列数 = 8
上記の例では、AddRange()メソッドを使って配列の全要素をStringCollectionに追加しています。インデックスは0から始まるため、strCol[5]は6番目の要素である「F」を返します。また、Countプロパティでコレクション内の要素数が8であることも確認できます。
例2:指定インデックスの要素を設定(更新)する
次に、同じインデックスに対して新しい値を代入し、要素を更新する例を見てみましょう。
using System;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringCollection strCol = new StringCollection();
String[] strArr = new String[] { "A", "B", "C", "D", "E", "F", "G", "H" };
Console.WriteLine("StringCollectionの要素...");
foreach (string str in strArr) {
Console.WriteLine(str);
}
strCol.AddRange(strArr);
Console.WriteLine("インデックス5の要素 = " + strCol[5]);
strCol[5] = "K";
Console.WriteLine("更新後のインデックス5の要素 = " + strCol[5]);
}
}出力結果
StringCollectionの要素... A B C D E F G H インデックス5の要素 = F 更新後のインデックス5の要素 = K
このように、strCol[5] = "K";のように代入するだけで、既存の要素「F」が「K」に置き換えられます。読み取りも書き込みも、通常の配列と同じ感覚でインデックス構文を使えるのがStringCollectionの便利な点です。
まとめ
- StringCollectionの要素取得には
strCol[index]を使用する - 要素の更新には
strCol[index] = 値;の形式で代入する - インデックスは0から始まるため注意が必要
Countプロパティで要素数を確認できる
-
C#でコレクションの指定したインデックスの要素を削除する方法(RemoveAtメソッド)
C#のCollection<T>クラスで、指定されたインデックス位置にある要素を削除するには、RemoveAt()メソッドを使用します。インデックスは0から始まり、要素を削除すると残りの要素は自動的に前方へ詰め直されます。 まずは、1つの要素を削除する基本的な例から見ていきましょう。 例1:指定したインデックスの要素を削除する using System; using System.Collections.ObjectModel; public class Demo { public static void Main() { &nbs
-
C#でHashSetに指定された要素が含まれているか確認する方法
C#のHashSet<T>に特定の要素が含まれているかどうかを確認するには、Contains()メソッドを使用します。このメソッドは、指定した要素がHashSet内に存在する場合はtrue、存在しない場合はfalseを返します。Contains()メソッドの基本構文public bool Contains (T item);引数には検索対象の要素を渡します。HashSetはハッシュテーブルを基盤としているため、要素の検索はO(1)の計算量で実行でき、非常に高速です。例1:数値型のHashSetでContains()を使う以下は、int型のHashSetに対してContains()メ