3

Java プログラムを C# に移植しています。

Java でのサイズを取得するには、次のLinkedList<T>ようにします。

int size = list.size();

ただし、C# で同様のメソッドを見つけることができません。リンクされたリストのポイントはそのサイズを知ることではないことは知っていますが、私はそれをバッファに使用しているので、そのサイズを返すためにリストの内部にカウンターを用意することをお勧めします。

4

3 に答える 3

11

Count物件を利用したい。

さらに、 をLinkedList実装IEnumerableしているため、 を含むそのインターフェースのすべてのメソッドも使用できますCount()

于 2013-02-22T15:08:07.273 に答える
2

C#では、Javaのサイズに相当するのは、配列の長さとICollectionインターフェイスを実装するオブジェクトのカウントです。配列にはCountも含まれていますが、明示的に実装されており、 ICollectionにキャストする必要があります。要素の反復を可能にするすべてのオブジェクトによって実装されるIEnumerableインターフェイスもあります。IEnumerableには、Count()と呼ばれる拡張メソッドが含まれています。これはメソッドであり、プロパティではないことに注意してください。一部の実際のコレクションは、要素に割り当てられているメモリの数を示すCapacityプロパティも公開します。容量常にCount以上です。リストが大きい場合は、 IEnumerableのLongCount()メソッドを使用できます。IEnumerableのCount()メソッドでは、指定された条件を満たす要素をカウントすることもできることに注意してください。それは役に立つかもしれません。

サンプル:

LinkedList<string> linkedList = new LinkedList<string>();

int32 size3 = linkedList.Count; // From ICollection
int32 size2 = linkedList.Count(); // From IEnumerable
int64 bigSize = linkedList.LongCount(); // From IEnumerable

int32 size4 = linkedList.Count(s => s == "a"); // Count only strings equals "a"

詳細については、「System.Collections名前空間」を参照してください。この名前空間には、一般的な.NETコレクションに関するすべての情報が含まれています。

于 2013-02-22T15:15:49.317 に答える
2

Count プロパティを試しましたか? http://msdn.microsoft.com/en-us/library/t56y0h99.aspx

于 2013-02-22T15:10:14.117 に答える