C#
 Computer >> コンピューター >  >> プログラミング >> C#

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に対して要素の追加や変更が可能かどうかをプログラム的に簡単に判定できます。

  1. 【Python入門】リストが別のリストに含まれているか確認する2つの方法

    Pythonでは、2つの異なるリストが与えられたときに、「一方のリストがもう一方のリストの一部(部分リスト)として含まれているか」を確認したい場面があります。本記事では、代表的な2つのアプローチをサンプルコード付きでわかりやすく解説します。 方法1:map関数とjoin関数を使う方法 まずmap()関数でリストの各要素を文字列化し、続いてjoin()関数でカンマ区切りの文字列を作成します。そのうえで、in演算子を使って、リストAの文字列がリストBの文字列の中に含まれているかどうかを判定します。 サンプルコード listA = [x, y, t] listB = [t, z, a, x, y

  2. Pythonでリストがソート済みかどうかを確認する2つの方法

    Pythonにおいて、リストは最も広く使われているデータコレクションの一つです。開発の現場では、与えられたリストがすでに昇順にソートされているかどうかを確認したい場面によく出会います。この記事では、その判定を行うための代表的なアプローチを2つ、サンプルコード付きで紹介します。 方法1:sort()メソッドを使う まず元のリストのコピーを作成し、そのコピーに対してsort()メソッドを適用します。その後、ソート済みのコピーと元のリストを比較し、両者が完全に一致していれば「元のリストはすでにソートされている」と判断できます。 サンプルコード listA = [11,23,42,51,67] # 与