c list dictionary tutorial with code examples
このチュートリアルでは、C#リストと辞書を例とともに説明します。 C#ディクショナリとリストの要素を初期化、入力、アクセスする方法を学習します。
C#コレクションに関する以前のチュートリアルでは、ArrayList、Hashtable、Stack、SortedListなどのC#に存在するコレクションの種類について学習しました。これらのコレクションの種類に共通するのは、任意の種類のデータ項目を格納できることです。
これは、単一のコレクションエンティティ内にさまざまなデータ型を格納する場合に非常に役立つようですが、欠点は、コレクションからデータを取得するときに、適切なデータ型へのデータキャストが必要になることです。データキャストがないと、プログラムはランタイム例外をスローし、アプリケーションを妨げる可能性があります。
=> すべての人のための無料のC#トレーニングチュートリアル
これらの問題を解決するために、C#は汎用コレクションクラスも提供しています。ジェネリックコレクションは、アイテムの保存および取得中のパフォーマンスを向上させます。
学習内容:
C#リスト
ArrayListについては、以前の記事ですでに学習しました。基本的に、リストはArrayListに似ていますが、唯一の違いはリストが汎用であるということです。リストには、配列リストと同様に、サイズが大きくなるにつれてサイズを拡張するという独自のプロパティがあります。
リストを初期化する方法は?
次の方法でリストを初期化できます。
//using List type for initialization List listInteger = new List(); //using IList type for initialization IList listString = new List();上記の例を見ると、最初の行でListを使用して整数リストを初期化したことがわかります。ただし、2行目では、文字列リストの初期化にIListを使用しています。これらのいずれかをプログラムに使用できます。このリストは、実際にはインタフェースIListの実装です。
リストに要素を追加および挿入する方法は?
ArrayListと同様に、Add()メソッドを使用してリストに要素を追加できます。 addメソッドは、データ型の値を引数として受け入れます。
構文
ListName.Add(DataType value);リストとIListにデータを追加する簡単なプログラムを見てみましょう。
プログラム:
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List ;(); //Add elements to the list listInteger.Add(1); listInteger.Add(2); listInteger.Add(3); //using IList type for initialization IList listString = new List(); listString.Add('One'); listString.Add('Two'); listString.Add('Three'); Console.ReadLine(); } } リストの初期化中に要素を直接追加することもできます。配列の章で行ったのと同様の方法で、初期化自体の時点で値をリストに直接追加できます。
これは、リストの後に中括弧を配置し、その中に値をコンマで区切って書き込むことで追加できます。上記のプログラムを少し変更して、初期化中に直接値を追加できるようにします。
品質保証と品質管理の違いは何ですか?
したがって、プログラムは次のようになります。
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //using IList type for initialization IList listString = new List(); listString.Add('One'); listString.Add('Two'); listString.Add('Three'); Console.ReadLine(); } } 上記のプログラムでは、初期化の開始時に整数リスト値を初期化しました。これにより、値ごとにAdd()メソッドを記述せずに、値を直接渡すことができました。これは、リスト内に配置する必要のある定量化可能なデータ量が限られている場合に非常に役立ちます。
リストにアクセスする方法は?
インデックスを使用して、リストから個々のアイテムにアクセスできます。インデックスは、リスト名の後に角括弧で囲むことができます。
構文
dataType Val = list_Name(index);それでは、前のプログラムで作成したリストからデータを取得するための簡単なプログラムを見てみましょう。
プログラム
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; int val = listInteger(1); Console.WriteLine(val); } } 次のプログラムの出力は、インデックス1の値になります。インデックスは0から始まり、出力は次のようになります。
二
ここで、リストからすべてのデータを取得したいとします。これは、for-eachループまたはforループを使用して実行できます。
各ループについて
for eachループを使用して、リストからすべてのデータを取得できます。
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; foreach (var val in listInteger) { Console.WriteLine(val); } } } ここでは、変数値を宣言することにより、foreachループを使用してリストをループしています。これにより、リスト内にデータが含まれるまで、リスト内の各ループが可能になります。
Forループ
forループを使用するには、リスト内に存在する要素の数を知る必要があります。 Count()メソッドを使用して、要素のカウントを取得できます。
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //finding the size of the list using count int size = listInteger.Count; for (int i =0; iリスト内に新しい要素を挿入する必要がある場合もあります。これを行うには、Insert()メソッドを使用して、リスト内の任意の場所に新しいメソッドを追加する必要があります。 insertメソッドは2つの引数を受け入れます。最初の引数はデータを挿入するインデックスであり、2番目の引数は挿入するデータです。
挿入の構文は次のとおりです。
List_Name.Insert(index, element_to_be_inserted);それでは、前に作成したリスト内に要素を挿入しましょう。上記のプログラムに挿入ステートメントを追加し、それがどのように機能するかを確認します。
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //finding the size of the list using count int size = listInteger.Count; for (int i =0; i 上記のプログラムを実行すると、出力は次のようになります。
1
二
3
新しい値を挿入した後のリスト値
1
22
二
3
forループの後に、以前に定義したリストのインデックス1に整数22を挿入するための挿入ステートメントを追加しました。次に、(最初のデータを挿入した後)リスト内に現在存在するすべての要素を出力するforeachループを作成しました。
出力から、リストのすべての要素が前方にシフトされて、インデックス1の新しい要素に取って代わられていることがはっきりとわかります。インデックス1の要素は22になり、インデックス1の前の要素(2)はにシフトされました。次のインデックスなど。
リストから要素を削除する方法は?
場合によっては、リストからアイテムを削除する必要がある場合もあります。そのために、C#には2つの異なる方法があります。これらの2つのメソッドは、Remove()とRemoveAt()です。 Removeは、リストから特定の要素を削除するために使用され、RemoveAtは、指定されたインデックスに存在する要素を削除するために使用されます。
構文を見てみましょう。
構文
Remove(Element name); RemoveAt(index); それでは、前のコードにRemoveステートメントを追加して、何が起こるかを見てみましょう。
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //finding the size of the list using count int size = listInteger.Count; for (int i =0; i 上記のプログラムの出力は次のようになります。
1
二
3
リストから値を削除する
1
3
上記のプログラムでは、removeメソッドを使用して、リストから要素2を削除しました。 Removeメソッドが実行されると出力に表示されるように、リストには削除した要素が含まれなくなります。
同様に、RemoveAtメソッドも使用できます。上記のプログラムのRemoveメソッドをRemoveAt()メソッドに置き換え、パラメーターとしてインデックス番号を渡します。
class Program { staticvoid Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //finding the size of the list using count int size = listInteger.Count; for (int i =0; i 上記のプログラムの出力は次のようになります。
1
二
3
リストから値を削除する
1
二
上記のプログラムでは、整数2を削除するのではなく、インデックス2に存在する要素を削除したことがはっきりとわかります。したがって、要件に応じて、Remove()またはRemoveAt()を使用して、から特定の要素を削除できます。リスト。
C#辞書
C#の辞書は、どの言語の辞書にも似ています。ここにも単語とその意味のコレクションがあります。単語はキーと呼ばれ、その意味または定義は値として定義できます。
辞書は2つの引数を受け入れます。最初の引数はキーで、2番目の引数は値です。 DictionaryクラスまたはIDictionaryインターフェースのいずれかの変数を使用して初期化できます。
辞書の構文は次のとおりです。
Dictionary 辞書を初期化する簡単なプログラムを見てみましょう。
Dictionary data = new Dictionary();上記のプログラムでは、キーと値の両方を文字列として辞書データを初期化したことがはっきりとわかります。ただし、キーと値には任意のデータ型のペアを使用できます。 例えば、 上記のステートメントを変更して別のデータ型を含めると、それも正しくなります。
Dictionary data = new Dictionary();山括弧内のデータ型は、キーと値用です。キーと値として任意のデータ型を保持できます。
キーと値を辞書に追加する方法は?
辞書を初期化する方法を見ました。次に、キーとその値を辞書に追加します。ディクショナリは、さまざまなデータとその値をリストに追加する場合に非常に役立ちます。 Add()メソッドを使用して、辞書にデータを追加できます。
構文
swfファイルを実行するにはどうすればよいですか
DictionaryVariableName.Add(Key, Value);ここで、上記のプログラムにAddステートメントを含めて、キーと値を辞書に追加しましょう。
プログラム
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); } } 上記のプログラムでは、Add()メソッドを使用して、キーと値を辞書に追加しました。 Add()メソッドに渡される最初のパラメーターはキーであり、2番目のパラメーターはキーの値です。
辞書からキーと値にアクセスする方法は?
リストのチュートリアルで説明したように、辞書の要素にはいくつかの異なる方法でアクセスすることもできます。ここでは、アクセスするための重要な方法のいくつかについて説明します。 forループ、各ループ、およびデータ項目にアクセスするためのインデックスについて説明します。
インデックスを使用して、リストから特定の値にアクセスできます。
forループを使用して、ディクショナリからすべての要素にアクセスまたは取得できますが、ループを停止するにはディクショナリのサイズが必要です。各ループはより柔軟であるため、辞書のサイズを必要とせずに、辞書から存在するすべてのデータを取得できます。
インデックスの使用
インデックスの要素は、配列と同様に使用して要素にアクセスできます。基本的な違いは、インデックスの代わりに値にアクセスするためのキーが必要なことです。
構文
Dictionary_Name(key); プログラム
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); string value = dctn('two'); Console.WriteLine(value); Console.ReadLine(); } } 上記のプログラムの出力は次のようになります。
2番目
要素にアクセスするためのForループの使用
forループを使用して、辞書のすべての要素にアクセスできます。ただし、必要な反復回数について、辞書内の要素の数を取得する必要もあります。
上記のプログラムにforループを追加して、辞書からすべての値を取得しましょう。
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); for(int i =0; i 上記のプログラムの出力は次のようになります。
キーの要素:1とその値は:first
キーの要素:2、その値は:second
キーの要素:3、その値は:3番目
上記のプログラムでは、ElementAt()メソッドを使用して特定のインデックスのキーを取得してから、同じキーを使用してキー値のデータを取得しました。 forループは、ディクショナリ内のすべてのデータを反復処理します。 Countプロパティは、反復用のディクショナリのサイズを取得するために使用されています。
For-Eachループの使用
forループと同様に、foreachループも使用できます。
for-eachループを使用した上記のプログラムを見てみましょう。
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); foreach (KeyValuePair item in dctn) { Console.WriteLine('The Key is :'+ item.Key+' - The value is: '+ item.Value); } Console.ReadLine(); } } 上記のプログラムの出力は次のようになります。
キーは:1 –値は:最初
キーは:2 –値は:秒
キーは:3 –値は:サード
上記のプログラムは、KeyValuePairを使用して変数を宣言してから、ディクショナリ内の各キーと値のペアを反復処理し、それをコンソールに出力します。
辞書内のデータの存在を検証する方法は?
特定のキーまたは値が辞書に存在するかどうかを確認する必要がある場合があります。これを検証するには、ContainsValue()とContainsKey()の2つのメソッドを使用して、ディクショナリ内の既存のキーまたは値を確認します。
含むメソッドは、指定された値がディクショナリに存在するかどうかを検証するために使用されます。 containsKeyメソッドは、特定のキーがディクショナリに存在するかどうかを確認するために使用されます。
構文
Dictionary_Name.ContainsValue(Value); Dictionary_Name.ContainsKey(Key); containsおよびContainsKeyメソッドを使用して検証する簡単なプログラムを作成しましょう。
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); bool key = dctn.ContainsKey('one'); bool val = dctn.ContainsValue('four'); Console.WriteLine('The key one is available : ' + key); Console.WriteLine('The value four is available : ' + val); Console.ReadLine(); } } 上記のプログラムの出力は次のようになります。
重要なものが利用可能です:True
値4が使用可能です:False
上記のプログラムでは、最初にContainsKeyメソッドを使用して、指定されたキーがディクショナリ内に存在するかどうかを検証しました。キーがディクショナリに存在するため、メソッドはtrueを返します。次に、ContainsValueを使用して、指定された値が存在するかどうかを判別します。値「four」はディクショナリ内に存在しないため、falseを返します。
辞書から要素を削除する方法は?
特定のプログラミングロジックを満たすために、辞書から特定のキーと値のペアを削除する必要がある場合があります。 Removeメソッドを使用すると、キーに基づいて辞書から任意のペアを削除できます。
構文
Remove(key); プログラム
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); //removing key two dctn.Remove('two'); //validating if the key is present or not bool key = dctn.ContainsKey('two'); Console.WriteLine('The key two is available : ' + key); Console.ReadLine(); } } 上記のプログラムの出力は次のようになります。
最高の無料ハードドライブクローン作成ソフトウェア2017
キー2が利用可能です:False
上記のプログラムでは、最初にキーと値のペアを辞書に追加しました。次に、辞書からキーを削除し、ContainsKey()メソッドを使用して、キーと値のペアが辞書に存在しないかどうかを検証しました。
結論
リストには特定のデータ型の要素が格納され、アイテムが追加されると大きくなります。複数の重複要素を保存することもできます。インデックスまたはループを使用して、リスト内のアイテムに簡単にアクセスできます。このリストは、大量のデータを保存するのに非常に役立ちます。
辞書は、キーと値のペアを格納するために使用されます。ここでは、キーは一意である必要があります。ディクショナリからの値は、ループまたはインデックスを使用して取得できます。また、Containsメソッドを使用してキーまたは値を検証することもできます。
推奨読書