2011-10-27 6 views

Odpowiedz

13

Nie, nie możesz.

Nie byłoby to przydatne, gdyby było dozwolone. CLR ma ograniczenie maksymalnej wielkości obiektu przy 2 GB. W związku z tym nie jest możliwe zbudowanie tablicy, w której przydatny byłby indeks long.

+0

Wierzę, że Mono używa 64-bitowych int dla indeksów tablicowych. Nie jestem pewien, czy oznacza to, że ich implementacja List <> jest inna. –

+1

Lista może używać innej strategii do przechowywania jej elementów. Na przykład może użyć jakiejś struktury drzewa. – phoog

0

Nie można zmienić interfejsu listy ramowej <>, który określa typ argumentu indeksu jako int. Ale możesz można utworzyć własny typ, który ma indeks long.

Jak zauważył JaredPar, nie można utworzyć tablicy wystarczająco dużej, aby wymagać 64-bitowego indeksu. Jeśli chcesz utworzyć listę, w której można przechowywać tak wiele elementów, będziesz musiał użyć jakiejś struktury drzewa lub tablic tablic lub czegoś takiego. I będziesz potrzebować dużo pamięci!

-4

Możesz mieć listę, która będzie zawierać długie wartości lub liczby większe niż 2 147 483 647.

List<long> list = new List<long>(); 

list.Add(3000000000) will work. 
Powiązane problemy