ホームページ バックエンド開発 C#.Net チュートリアル C#基礎知識編:基礎知識(15) ICollection、iteration、generics

C#基礎知識編:基礎知識(15) ICollection、iteration、generics

Feb 11, 2017 pm 01:41 PM

1. ICollection インターフェイス
配列は、.net フレームワークによって定義される最も基本的なコレクション型です。配列に加えて、.net フレームワークでも多くのコレクション型が定義されます。 msdn を開くと、すべてのコレクションが System.Collections 名前空間の下にあることがわかります。
Collection クラス:
ArrayList: サイズをオンデマンドで動的に増加できる配列を使用して IList インターフェイスを実装します。
BitArray: 値を管理する圧縮配列。値はブール値として表されます。true はビットがオン (1) であることを意味し、false はビットがオフ (0) であることを意味します。
CaseInsensitiveComparer: 比較時に文字列の大文字と小文字を無視して、2 つのオブジェクトが等しいかどうかを比較します。
CollectionBase: 厳密に型指定されたコレクションの抽象基本クラスを提供します。
Comparer: 2 つのオブジェクトが等しいかどうかを比較します。文字列比較では大文字と小文字が区別されます。
DictionaryBase: 厳密に型指定されたキー/値ペアのコレクションの抽象基本クラスを提供します。
Hashtable: キーのハッシュ コードに従って編成されたキー/値ペアのコレクションを表します。
Queue: オブジェクトの先入れ先出しコレクションを表します。
ReadOnlyCollectionBase: 厳密に型指定された非ジェネリック読み取り専用コレクションの抽象基本クラスを提供します。
SortedList: キーによって並べ替えられ、キーとインデックスによってアクセスできるキーと値のペアのコレクションを表します。
スタック: 単純な後入れ先出しの非ジェネリックなオブジェクトのコレクションを表します。
インターフェイス:
ICollection: すべての非ジェネリック コレクションのサイズ、列挙子、および同期メソッドを定義します。
IComparer: 2 つのオブジェクトを比較するメソッドを公開します。
IDictionary: キーと値のペアの非普遍的なコレクションを表します。
IDictionaryEnumerator: 非汎用辞書の要素を列挙します。
IEnumerable: 非ジェネリック コレクションに対する単純な反復をサポートする列挙子を公開します。
IEnumerator: 非ジェネリック コレクションの単純な反復をサポートします。
IEqualityComparer: オブジェクトの等価比較をサポートするメソッドを定義します。
IList: インデックスによって個別にアクセスできるオブジェクトの非汎用コレクションを表します。
主に ICollection インターフェースと IEnumerable インターフェースを見てください。
ICollection:
このインターフェイスは、その実装クラスの 2 つの主な仕様を定義します:
(1) コレクション要素の数、つまり Count 属性
(2) 反復 (GetEnumerator メソッド)。
GetEnumertor メソッドは、ICollection の親インターフェイス IEumerable から継承されます。 ICollection インターフェイスは、オブジェクト型オブジェクトへの参照を格納および取得するコレクションを定義するため、さまざまな参照型オブジェクトまたは値型オブジェクトへの参照を格納および取得できます。
IEnumerable インターフェイス:
このインターフェイスは、ICollection の親インターフェイスであり、実装するクラスに反復可能な機能を提供します。 IEumerable インターフェイスには GetEnumerator メソッドが 1 つだけあり、コレクションを反復処理する列挙子を返します
2. 反復
反復 (イテレーターとも呼ばれます) は、デザイン パターンにおける反復モードであり、その意味は、集合体に順次アクセスするメソッドを提供することです。オブジェクトの内部表現を公開せずに個々の要素を作成します。コレクションの格納方法が異なるため、List は連続格納、リンク リストはオブジェクト間の参照格納を使用します。そうすると、コレクションを横断する必要がある場合に不便になり、異なるコレクションをすべて横断できるメソッドが必要になります。イテレータ。
イテレータは結合クラスを無限容量のコンテナとして扱い、ストレージ ルールは線形です。つまり、最初と最後を除くすべての要素には直接の先行要素と直接の後続要素があり、コンテナにはコンテナ内の任意のストレージ ユニットを指すことができるフラグがあります。一方向反復と双方向反復の 2 つの方法があります。
(1) 一方向反復
一方向反復は、集合の単位フラグが集合の特定の要素から開始して 1 つずつ後方にのみ移動できることを指します。 したがって、反復では 3 つの操作が定義されます。 . 現在の項目
b. 次の項目に進み、終了かどうかを判断します
c. 最初の項目に戻ります
(2) 双方向反復モード
双方向反復モードの場合、セットの単位マークが 1 つ戻ります。セット内の項目から開始して 1 つずつ進めることもできます。したがって、次の 4 つの操作があります:
a、現在の項目
b、次の項目に進むかどうかを決定します。終了です
c、前の項目に戻り、セットかどうかを判断します 開始
d、初期位置に戻ります

.net フレームワークは、IEumerable インターフェイスを使用して一方向の反復仕様を定義します。 ICollection インターフェイスは、IEumerable インターフェイスを継承します。このインターフェイスによって定義される GetEnumerator メソッドは、現在のコレクション クラス オブジェクトの反復オブジェクト、つまり IEumerable インターフェイスを実装するオブジェクトを取得できます。
IEnumerable インターフェイスを実装するクラスはすべて、foreach ループを使用して反復的に走査できます。
IEnumerator インターフェイスは、オブジェクト型のオブジェクト参照をトラバースできるイテレータを定義し、IEnumerable インターフェイスは、このイテレータ オブジェクトを取得するメソッドを定義します。
3. ジェネリック コレクション
ICollection インターフェイス
ICollection インターフェイスは、.net Framework が提供するジェネリック機能を使用して、コレクションを 1 つの型のみを格納するように制限します。特定の型のオブジェクト参照または値型のデータのコレクション。汎用コレクションは、コレクションへのアクセスの効率とセキュリティを強化します。
ストレージ タイプが決定されているため、ICollection は、コレクションへの追加、コレクションからの削除、コレクション内にオブジェクト参照 (またはオブジェクト値) が存在するかどうかの判断など、ICollection インターフェイスよりも多くのメソッドを提供します。
IEnumerable インターフェイス
ICollection インターフェイスは、主に IEnumerator インターフェイスを実装する特定の型の反復サブオブジェクトを返すために使用されます。

上記は C# の基礎知識をまとめたものです: 基礎知識 (15) ICollection、iteration、generics 関連コンテンツの詳細については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C言語で特殊文字を処理する方法 C言語で特殊文字を処理する方法 Apr 03, 2025 pm 03:18 PM

C言語では、以下などのエスケープシーケンスを通じて特殊文字が処理されます。\ nはラインブレークを表します。 \ tはタブ文字を意味します。 ESACEシーケンスまたは文字定数を使用して、Char C = '\ n'などの特殊文字を表します。バックスラッシュは2回逃げる必要があることに注意してください。さまざまなプラットフォームとコンパイラが異なるエスケープシーケンスを持っている場合があります。ドキュメントを参照してください。

C文字列におけるcharの役割は何ですか C文字列におけるcharの役割は何ですか Apr 03, 2025 pm 03:15 PM

Cでは、文字列でCharタイプが使用されます。1。単一の文字を保存します。 2。配列を使用して文字列を表し、ヌルターミネーターで終了します。 3。文字列操作関数を介して動作します。 4.キーボードから文字列を読み取りまたは出力します。

C言語でさまざまなシンボルを使用する方法 C言語でさまざまなシンボルを使用する方法 Apr 03, 2025 pm 04:48 PM

c言語のシンボルの使用方法は、算術、割り当て、条件、ロジック、ビット演算子などをカバーします。算術演算子は基本的な数学的操作に使用されます。割り当てと追加、下位、乗算、除算の割り当てには、条件操作に使用されます。ポインター、ファイル終了マーカー、および非数値値。

マルチスレッドと非同期C#の違い マルチスレッドと非同期C#の違い Apr 03, 2025 pm 02:57 PM

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

C言語のcharとwchar_tの違い C言語のcharとwchar_tの違い Apr 03, 2025 pm 03:09 PM

C言語では、charとwchar_tの主な違いは文字エンコードです。CharはASCIIを使用するか、ASCIIを拡張し、WCHAR_TはUnicodeを使用します。 Charは1〜2バイトを占め、WCHAR_Tは2〜4バイトを占有します。 charは英語のテキストに適しており、wchar_tは多言語テキストに適しています。 CHARは広くサポートされており、WCHAR_TはコンパイラとオペレーティングシステムがUnicodeをサポートするかどうかに依存します。 CHARの文字範囲は限られており、WCHAR_Tの文字範囲が大きく、特別な機能が算術演算に使用されます。

C言語でCharを変換する方法 C言語でCharを変換する方法 Apr 03, 2025 pm 03:21 PM

C言語では、charタイプの変換は、キャスト:キャスト文字を使用することにより、別のタイプに直接変換できます。自動タイプ変換:あるタイプのデータが別のタイプの値に対応できる場合、コンパイラは自動的に変換します。

C言語でchar配列の使用方法 C言語でchar配列の使用方法 Apr 03, 2025 pm 03:24 PM

Char Arrayは文字シーケンスをC言語で保存し、char array_name [size]として宣言されます。アクセス要素はサブスクリプト演算子に渡され、要素は文字列のエンドポイントを表すnullターミネーター「\ 0」で終了します。 C言語は、strlen()、strcpy()、strcat()、strcmp()など、さまざまな文字列操作関数を提供します。

C言語合計の機能は何ですか? C言語合計の機能は何ですか? Apr 03, 2025 pm 02:21 PM

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。

See all articles