C#のSortedListが読み取り専用かどうかを確認する方法
C#のSortedListが読み取り専用(Read-Only)かどうかを確認するには、IsReadOnlyプロパティを使用します。このプロパティは、リストが読み取り専用の場合にtrue、書き込み可能な場合にfalseを返します。
例1:IsReadOnlyプロパティの基本的な使い方
以下のコードでは、SortedListを作成し、要素を追加した後にIsReadOnlyプロパティの値を出力しています。
using System;
using System.Collections;
public class Demo {
public static void Main(String[] args) {
SortedList list = new SortedList();
list.Add("One", "IT");
list.Add("Two ", "Operations");
list.Add("Three", "Marketing");
list.Add("Four", "Purchase");
list.Add("Five", "Sales");
list.Add("Six", "Finance");
Console.WriteLine("SortedListの要素...");
foreach(DictionaryEntry d in list) {
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\n値の一覧...SortedList");
IList col = list.GetValueList();
foreach(string res in col) {
Console.WriteLine(res);
}
Console.WriteLine("\nSortedListは読み取り専用か? = "+list.IsReadOnly);
}
}出力結果
上記のコードを実行すると、次のような出力が得られます。
SortedListの要素... Five Sales Four Purchase One IT Six Finance Three Marketing Two Operations 値の一覧...SortedList Sales Purchase IT Finance Marketing Operations SortedListは読み取り専用か? = False
出力結果からわかるように、通常の方法で作成したSortedListは読み取り専用ではないため、IsReadOnlyプロパティはFalseを返します。また、要素はキーによって自動的にソートされて表示されている点にも注目してください。
例2:キーのコレクションと組み合わせた確認
続いて、別の例を見てみましょう。ここではIndexOfKeyメソッドやKeysコレクションも併せて使用しています。
using System;
using System.Collections;
public class Demo {
public static void Main(String[] args) {
SortedList list = new SortedList();
list.Add("One", "Finance");
list.Add("Two", "Marketing");
list.Add("Three", "Sales");
list.Add("Four", "Purchase");
list.Add("Five", "Operations");
list.Add("Six", "IT");
Console.WriteLine("SortedListの要素...");
foreach(DictionaryEntry d in list) {
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nキー One のインデックス = "+list.IndexOfKey("One"));
ICollection col = list.Keys;
Console.WriteLine("\nキーのコレクション...");
foreach(string res in col)
Console.WriteLine(res);
Console.WriteLine("\nSortedListは読み取り専用か? = "+list.IsReadOnly);
}
}出力結果
上記のコードを実行すると、次のような出力が得られます。
SortedListの要素... Five Operations Four Purchase One Finance Six IT Three Sales Two Marketing キー One のインデックス = 2 キーのコレクション... Five Four One Six Three Two SortedListは読み取り専用か? = False
ポイントまとめ
IsReadOnlyプロパティは、IListインターフェースで定義されているプロパティです。- 通常の
new SortedList()で作成したインスタンスは書き込み可能なため、常にfalseを返します。 - 読み取り専用のラッパーを作成した場合などには
trueを返すことがあります。
このように、IsReadOnlyプロパティを使えば、SortedListに対して要素の追加や変更が可能かどうかをプログラム的に簡単に判定できます。
-
【Python入門】リストが別のリストに含まれているか確認する2つの方法
Pythonでは、2つの異なるリストが与えられたときに、「一方のリストがもう一方のリストの一部(部分リスト)として含まれているか」を確認したい場面があります。本記事では、代表的な2つのアプローチをサンプルコード付きでわかりやすく解説します。 方法1:map関数とjoin関数を使う方法 まずmap()関数でリストの各要素を文字列化し、続いてjoin()関数でカンマ区切りの文字列を作成します。そのうえで、in演算子を使って、リストAの文字列がリストBの文字列の中に含まれているかどうかを判定します。 サンプルコード listA = [x, y, t] listB = [t, z, a, x, y
-
Pythonでリストがソート済みかどうかを確認する2つの方法
Pythonにおいて、リストは最も広く使われているデータコレクションの一つです。開発の現場では、与えられたリストがすでに昇順にソートされているかどうかを確認したい場面によく出会います。この記事では、その判定を行うための代表的なアプローチを2つ、サンプルコード付きで紹介します。 方法1:sort()メソッドを使う まず元のリストのコピーを作成し、そのコピーに対してsort()メソッドを適用します。その後、ソート済みのコピーと元のリストを比較し、両者が完全に一致していれば「元のリストはすでにソートされている」と判断できます。 サンプルコード listA = [11,23,42,51,67] # 与