現在、インデックスはList<int>
になります。Int32、Int64に行くことはできますか?インデックスが長いような長いリスト<int>を作成できますか?
私はmylist [1000000000000]のようなものを使用できます。
現在、インデックスはList<int>
になります。Int32、Int64に行くことはできますか?インデックスが長いような長いリスト<int>を作成できますか?
私はmylist [1000000000000]のようなものを使用できます。
できません。
これが許可されていれば、これは役に立たないでしょう。 CLRには、オブジェクトの最大サイズが2GBに制限されています。したがって、long
インデックスが役に立つ配列を構築することさえできません。
フレームワークリスト<>インターフェイスを変更することはできません。これは、インデックス引数のタイプをint
と指定します。しかし、あなたはlong
インデックスを取る独自のタイプを作成することができます。
JaredParが指摘したように、64ビットインデックスが必要な大きさの配列は作成できません。非常に多くのアイテムを格納できるリストを作成したい場合は、何らかの種類のツリー構造や配列の配列などを使用する必要があります。そして、あなたはたくさんの記憶が必要です!
長い値を保持するList、または2,147,483,647より大きい数値を持つListを持つことができます。
List<long> list = new List<long>();
list.Add(3000000000) will work.
私はMonoが配列インデックスに64ビットのintを使うと信じています。 List <>の実装が異なるのかどうかは分かりません。 –
リストは、アイテムを格納する別の戦略を使用できます。たとえば、何らかの種類のツリー構造を使用できます。 – phoog