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

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 までご連絡ください。
c#.netの継続的な関連性:現在の使用法を見るc#.netの継続的な関連性:現在の使用法を見るApr 16, 2025 am 12:07 AM

C#.NETは、複数のアプリケーション開発をサポートする強力なツールとライブラリを提供するため、依然として重要です。 1)C#は.NETフレームワークを組み合わせて、開発を効率的かつ便利にします。 2)C#のタイプの安全性とゴミ収集メカニズムは、その利点を高めます。 3).NETは、クロスプラットフォームの実行環境とリッチAPIを提供し、開発の柔軟性を向上させます。

Webからデスクトップまで:C#.NETの汎用性Webからデスクトップまで:C#.NETの汎用性Apr 15, 2025 am 12:07 AM

c#.netisversatileforbothwebanddesktopdevelopment.1)forweb、useasp.netfordynamicapplications.2)fordesktop、equindowsorwpfforrichinterfaces.3)usexamarinforcross-platformdeveliment、enabling deshacrosswindows、

c#.net and the Future:新しいテクノロジーへの適応c#.net and the Future:新しいテクノロジーへの適応Apr 14, 2025 am 12:06 AM

C#と.NETは、継続的な更新と最適化を通じて、新しいテクノロジーのニーズに適応します。 1)C#9.0および.NET5は、レコードタイプとパフォーマンスの最適化を導入します。 2).Netcoreは、クラウドネイティブおよびコンテナ化されたサポートを強化します。 3)ASP.Netcoreは、最新のWebテクノロジーと統合されています。 4)ML.NETは、機械学習と人工知能をサポートしています。 5)非同期プログラミングとベストプラクティスはパフォーマンスを改善します。

c#.netはあなたにぴったりですか?その適用性の評価c#.netはあなたにぴったりですか?その適用性の評価Apr 13, 2025 am 12:03 AM

c#.netissuitableforenterprise-levelApplicationsとsystemduetoitsSystemdutyping、richlibraries、androbustperformance.

.NET内のC#コード:プログラミングプロセスの調査.NET内のC#コード:プログラミングプロセスの調査Apr 12, 2025 am 12:02 AM

.NETでのC#のプログラミングプロセスには、次の手順が含まれます。1)C#コードの作成、2)中間言語(IL)にコンパイルし、3).NETランタイム(CLR)によって実行される。 .NETのC#の利点は、デスクトップアプリケーションからWebサービスまでのさまざまな開発シナリオに適した、最新の構文、強力なタイプシステム、および.NETフレームワークとの緊密な統合です。

C#.NET:コアの概念とプログラミングの基礎を探るC#.NET:コアの概念とプログラミングの基礎を探るApr 10, 2025 am 09:32 AM

C#は、Microsoftによって開発された最新のオブジェクト指向プログラミング言語であり、.NETフレームワークの一部として開発されています。 1.C#は、カプセル化、継承、多型を含むオブジェクト指向プログラミング(OOP)をサポートしています。 2。C#の非同期プログラミングは非同期を通じて実装され、適用応答性を向上させるためにキーワードを待ちます。 3. LINQを使用してデータ収集を簡潔に処理します。 4.一般的なエラーには、null参照の例外と、範囲外の例外インデックスが含まれます。デバッグスキルには、デバッガーと例外処理の使用が含まれます。 5.パフォーマンスの最適化には、StringBuilderの使用と、不必要な梱包とボクシングの回避が含まれます。

テストC#.NETアプリケーション:ユニット、統合、およびエンドツーエンドテストテストC#.NETアプリケーション:ユニット、統合、およびエンドツーエンドテストApr 09, 2025 am 12:04 AM

C#.NETアプリケーションのテスト戦略には、ユニットテスト、統合テスト、エンドツーエンドテストが含まれます。 1.単位テストにより、コードの最小ユニットがMSTEST、ヌニット、またはXUNITフレームワークを使用して独立して動作することを保証します。 2。統合テストでは、一般的に使用されるシミュレートされたデータと外部サービスを組み合わせた複数のユニットの機能を検証します。 3.エンドツーエンドのテストでは、ユーザーの完全な操作プロセスをシミュレートし、通常、セレンは自動テストに使用されます。

高度なC#.NETチュートリアル:次のシニア開発者インタビューをエース高度なC#.NETチュートリアル:次のシニア開発者インタビューをエースApr 08, 2025 am 12:06 AM

C#シニア開発者とのインタビューでは、非同期プログラミング、LINQ、.NETフレームワークの内部作業原則などのコア知識をマスターする必要があります。 1.非同期プログラミングは、非同期を通じて操作を簡素化し、アプリケーションの応答性を向上させるのを待ちます。 2.LinqはSQLスタイルでデータを操作し、パフォーマンスに注意を払います。 3.ネットフレームワークのCLRはメモリを管理し、ガベージコレクションに注意して使用する必要があります。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。