Na przykład w języku C # tablice mają właściwość Length. Ale inne typy kolekcji, takie jak listy itp., Mają właściwość Count. Czy istnieje powód, dla którego te dwa są różne? Jeśli tak, chciałbym wiedzieć.
Na przykład w języku C # tablice mają właściwość Length. Ale inne typy kolekcji, takie jak listy itp., Mają właściwość Count. Czy istnieje powód, dla którego te dwa są różne? Jeśli tak, chciałbym wiedzieć.
Odpowiedzi:
Są one nazywane inaczej, ponieważ są semantycznie różne:
Liczba kolekcji jest liczbą przechowywanych w niej przedmiotów i może z czasem ulec zmianie.
Długość tablicy to maksymalna liczba przedmiotów, które może pomieścić (będzie miała długość 10, nawet jeśli nie zgromadziłeś w niej tylu przedmiotów) i jest niezmienna.
Przykład:
Jeśli mam wiadro, w którym zmieści się maksymalnie 100 piłek, ma ono długość 100. Jeśli włożę do niego 50 piłek, wówczas będzie miało liczbę 50.
Jeśli dodam jeszcze 10 kulek, liczba będzie wynosić 60, ale długość będzie nadal wynosić 100. Aby zmienić długość, muszę zdobyć inne wiadro.
Tablica prawdopodobnie używa słowa Długość, ponieważ pod maską przydziela ciągły blok (długość) pamięci na podstawie pojemności pomnożonej przez rozmiar elementu. Chociaż fakt, że klasa List używa „Pojemność” do podobnej (choć zmiennej) koncepcji, sugeruje, że tablica może używać słowa „Długość” ze względów historycznych.
T[]
o długości N zawsze przechowuje dokładnie N wartości typu T
. Semantycznie nie wszystkie z tych wartości mogą mieć znaczenie (mogą być null
na przykład), ale istnieją. Różni się to od zwykłego znaczenia pojemności (używanego List<T>
na przykład przez). Masz rację, że Count
możesz się zmienić, a Length
nie możesz. Z drugiej strony nic nie nakazuje, Count
aby faktycznie się zmieniło. Jest również używany do niezmiennych kolekcji.
count
właściwość -property.