C#のStringCollectionクラスとは?主なプロパティ・メソッドと使い方を解説
StringCollectionクラスの概要
StringCollectionクラスは、文字列専用のコレクションを表すクラスです。System.Collections.Specialized名前空間に属しており、文字列を動的に追加・削除・検索できるため、可変長の文字列リストを扱いたい場合に便利です。
まずは、StringCollectionクラスの主なプロパティを見ていきましょう。
| 番号 | プロパティと説明 |
|---|---|
| 1 | Count StringCollectionに格納されている文字列の数を取得します。 |
| 2 | IsReadOnly StringCollectionが読み取り専用かどうかを示す値を取得します。 |
| 3 | IsSynchronized StringCollectionへのアクセスが同期されている(スレッドセーフである)かどうかを示す値を取得します。 |
| 4 | Item[Int32] 指定したインデックス位置にある要素を取得または設定します。 |
| 5 | SyncRoot StringCollectionへのアクセスを同期するために使用できるオブジェクトを取得します。 |
続いて、StringCollectionクラスの主なメソッドです。
| 番号 | メソッドと説明 |
|---|---|
| 1 | Add(String) 文字列をStringCollectionの末尾に追加します。 |
| 2 | AddRange(String[]) 文字列配列の要素をStringCollectionの末尾に一括でコピーします。 |
| 3 | Clear() StringCollectionからすべての文字列を削除します。 |
| 4 | Contains(String) 指定した文字列がStringCollection内に存在するかどうかを判断します。 |
| 5 | CopyTo(String[], Int32) StringCollection全体の値を、コピー先配列の指定したインデックスを開始位置として、1次元の文字列配列へコピーします。 |
| 6 | Equals(Object) 指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。(Objectクラスから継承) |
| 7 | GetEnumerator() StringCollectionを反復処理するためのStringEnumeratorを返します。 |
それでは、実際の使用例をいくつか見ていきましょう。
例1:2つのStringCollectionオブジェクトが等しいかどうかを確認する
2つのStringCollectionオブジェクトが等しいかどうかをチェックする場合のコード例は次のとおりです。
using System;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringCollection strCol1 = new StringCollection();
strCol1.Add("Accessories");
strCol1.Add("Books");
strCol1.Add("Electronics");
Console.WriteLine("StringCollection1の要素...");
foreach (string res in strCol1) {
Console.WriteLine(res);
}
StringCollection strCol2 = new StringCollection();
strCol2.Add("Accessories");
strCol2.Add("Books");
strCol2.Add("Electronics");
Console.WriteLine("StringCollection2の要素...");
foreach (string res in strCol1) {
Console.WriteLine(res);
}
Console.WriteLine("両方のStringCollectionは等しいか? = " + strCol1.Equals(strCol2));
}
}
出力結果
上記のコードを実行すると、次のような出力が得られます。
StringCollection1の要素... Accessories Books Electronics StringCollection2の要素... Accessories Books Electronics 両方のStringCollectionは等しいか? = False
ポイント: Equalsメソッドは参照の等価性を比較するため、内容が同じでも別々に生成されたインスタンスの場合はFalseが返されます。要素同士の一致を確認したい場合は、SequenceEqualなどのLINQメソッドを使うとよいでしょう。
例2:指定した文字列がStringCollectionに含まれているかを確認する
特定の文字列がStringCollection内に存在するかどうかをチェックする場合のコード例は次のとおりです。
using System;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringCollection stringCol = new StringCollection();
String[] arr = new String[] { "100", "200", "300", "400", "500" };
Console.WriteLine("配列の要素...");
foreach (string res in arr) {
Console.WriteLine(res);
}
stringCol.AddRange(arr);
Console.WriteLine("指定した文字列はStringCollectionに含まれているか? = " + stringCol.Contains("800"));
}
}
出力結果
上記のコードを実行すると、次のような出力が得られます。
配列の要素... 100 200 300 400 500 指定した文字列はStringCollectionに含まれているか? = False
ポイント: この例ではAddRangeメソッドを使って文字列配列の要素をまとめて追加しています。「800」はコレクション内に存在しないため、ContainsメソッドはFalseを返します。
-
C#のStringCollectionに指定した文字列が含まれているか確認する方法
C#のStringCollectionコレクション内に、特定の文字列が存在するかどうかを確認したい場合は、Contains()メソッドを使用します。このメソッドは、指定した文字列がコレクション内に見つかれば True を、見つからなければ False を返します。Containsメソッドの基本構文public bool Contains (string value);引数には検索対象の文字列を渡し、戻り値としてブール値(true / false)が返されます。サンプルコード1:数値文字列の場合以下は、StringCollection内に指定した文字列が存在するかどうかを確認する例です。usin
-
C#のConsoleクラスとは?主要プロパティの使い方を実例付きで解説
C#のConsoleクラスは、コンソールアプリケーションにおける標準入力・標準出力・標準エラー出力の各ストリームを表すクラスです。テキストの表示や入力の読み取りだけでなく、文字色や背景色の変更、カーソル位置やサイズの制御など、コンソール操作に関するさまざまな機能が提供されています。ここでは、Consoleクラスの代表的なプロパティの使い方を、サンプルコードと実行結果とあわせて解説します。Console.CursorLeftプロパティコンソール上のカーソル位置(左端から数えた列位置)を変更するには、Console.CursorLeftプロパティを使用します。サンプルコードusing System