ホームページ  >  記事  >  バックエンド開発  >  C# の汎用コレクション インスタンスのアプリケーションの簡単な分析

C# の汎用コレクション インスタンスのアプリケーションの簡単な分析

黄舟
黄舟オリジナル
2016-12-21 14:41:221133ブラウズ

C# ジェネリック コレクションを理解する前に、コレクションが OOP の重要な概念であり、C# でのコレクションの包括的なサポートが言語の本質の 1 つであることを理解します。 C# ジェネリックは C# 2.0 の新しい要素 (C++ ではテンプレートと呼ばれます) であり、主に一連の同様の問題を解決するために使用されます。このメカニズムにより、クラス名をパラメーターとしてジェネリック型に渡し、対応するオブジェクトを生成することができます。ジェネリックス (クラス、インターフェイス、メソッド、デリゲートなどを含む) をテンプレートと考えると、テンプレート内のバリアント部分がパラメーターとして渡されたクラス名に置き換えられ、それによって新しい型定義が取得されます。ジェネリックは比較的大きなトピックなので、ここでは詳しく分析しません。興味がある方は関連情報を参照してください。

C# のジェネリック コレクション クラスは非常に便利で高速に使用できます。このエッセイでは、リンク リストを使用して C# の List﹤T﹥ クラスの動作をシミュレートします。早速、コード内にコメントが書き込まれているので、追加のコードはありません。説明:

using System.Collections;
class MyList﹤T﹥
{
PRivate MyListNode firstNode;//最初のノード
private int count;//C# generic collection-node count
public MyList()
{
This .firstNode = null;
this.count = 0;
}
//C# 汎用コレクション - リストの長さの取得
public int GetLength()
{
return this.count;
}
// ノードを追加
public void AddElement(T data)
MyListNode first = this.firstNode; while (first .next != null)
{
first = first.next;
}
first.next = new MyListNode(data);
this.count++;
}
//C# 汎用コレクション - ノードを削除します
Public bool Remove (T data)
{
MyListNode first = this.firstNode;
if (first.data.Equals(data))
{
this.firstNode = first .next;
this.count--;
return true;
}
while (first.next!=null)
{
if (first.next.data.Equals(data))
{
first.next = first .next.next;
this.count--;
return true;
}
}
return false;
}
//C# 汎用コレクション - 指定されたインデックスのコレクション要素を取得します
public T GetAtIndex(int )
{
int innercount = 1;
MyListNode first = this.first Node;
if (index ﹥ count)
throw new Exception(" Ind ex 境界外"); count++;
}
return first.data;
}
}
//指定されたインデックスに新しい要素を挿入します
public void InsertAtIndex(int index,T data)
{
int innercount = 1;
MyListNode first = this.firstNode;
if (index ﹥ count)
{
throw new Exception("インデックスが境界外");
}
if (index == 1)
{
this.firstNode = new MyListNode(data);
this.firstNode.next = first;
}
else
{
while (innercount ﹤ インデックス - 1)
{
first = first.next;
innercount++;
}
MyListNode newNode = new MyListNode(data);
newNode.next = first.next;
first.next = newNode;
}
this.count++
}
/ /C# 汎用コレクション - 指定されたインデックスにあるコレクション要素を削除します
public void RemoveAtIndex(int index)
{
int innercount = 1;
MyListNode first = this.firstNode;
if (index ﹥ count)
{
throw new Exception ("境界外のインデックス");
}
if (index == 1)
{
this.firstNode = first.next;
}
else
{
while (innercount ﹤index - 1)
{
first.next; node
public MyListNode(T nodeData)
{
this.data = nodeData;
this.next = null;
}
}
}

以下は、C# ジェネリック コレクションによるこのシミュレーション クラスの使用法です。

class Program
{
static void Main(string[] args)
{
MyList﹤string﹥ ml = new MyList﹤string﹥();
ml.AddElement("xu");
ml.AddElement("jin");
ml.AddElement("lin");
ml.AddElement("love");
ml.AddElement("jasmine");
ml.removetIndex (2); ml.remove ("lin");
foreach (string s in ml) {
console.writeline (s);
}
}

ここでは、C# の汎用コレクション インスタンス アプリケーションの基本的な内容を紹介します。 C# の汎用コレクションを理解して学習するのに役立つことを願っています。

上記は、C# ジェネリック コレクション インスタンス アプリケーションの簡単な分析の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。




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