2

「c++ リスト」をオンラインで検索すると、C++ のリストの仕組み、およびその利点/欠点などの概要が得られます。ただし、C#でも同じものを見つけることができません。私の知る限り、名前リストはそれがどのように実装されているかについて何も言っておらず、リストが実際に言語で何であるかによって大きく異なる可能性があります。

すべてのデータの高速ランダムアクセスのために、できれば1つの配列に多くのデータを含む多くのファイルをロードする必要があります。ただし、データが多すぎるため、c# は十分な大きさのメモリの連続ブロックを見つけることができません。そこで、多くの配列を取り、1 つの配列として機能する抽象化を作成しようとしました。正しい配列へのアクセスについて確認するインデクサー プロパティがあります。

しかし、それはリストが実際にC#でどのように機能するかではないかと思いましたか?C#のリストについて私が知っている、または少なくとも考えているのは、ランダムな要素にアクセスする方法がなく、前の要素またはおそらくその後の要素からアクセスする方法がないリンクリストのように機能しないということだけです。

この件について詳細を教えてもらえますか?

4

2 に答える 2

2

これは本当に良い定義だと思います.C# 5.0 の簡単な本から

内部的には、List と ArrayList はオブジェクトの内部配列を維持することで機能し、容量に達するとより大きな配列に置き換えられます。要素の追加は効率的ですが (通常は最後に空きスロットがあるため)、要素の挿入は遅くなる可能性があります (挿入ポイントの後のすべての要素を移動して空きスロットを作成する必要があるため)。配列と同様に、並べ替えられたリストに対して BinarySearch メソッドを使用すると検索は効率的ですが、それ以外の場合は各項目を個別にチェックする必要があるため効率的ではありません。

于 2013-04-02T16:03:25.523 に答える