Perché gli array in .Net hanno Lunghezza ma altri tipi di raccolta hanno Count? [chiuso]

22

In C #, ad esempio, gli array hanno proprietà Length. Ma altri tipi di raccolta come le liste, ecc. Hanno una proprietà Count. C'è una ragione per cui questi due sono diversi? Se è così vorrei sapere.

    
posta Arunster 26.08.2015 - 11:37
fonte

1 risposta

29

Sono chiamati diversamente perché semanticamente sono piuttosto diversi:

Il conteggio di una raccolta è il numero di elementi attualmente memorizzati e può potenzialmente cambiare nel tempo.

La lunghezza di un array è il numero massimo di elementi che può contenere (avrà una lunghezza di 10 anche se non sono stati memorizzati molti elementi in esso) ed è immutabile.

Esempio:

Se ho un secchio che può contenere un massimo di 100 palle in esso ha una lunghezza di 100. Se metto 50 palle in esso, allora ha un conteggio di 50.

Se aggiungo altre 10 palline, il conteggio diventa 60 ma la lunghezza è ancora 100. Per cambiare la lunghezza ho bisogno di ottenere un secchio diverso.

L'array usa probabilmente la parola Length perché sotto il cofano sta allocando un blocco contiguo (una lunghezza) di memoria in base alla capacità moltiplicata per la dimensione dell'elemento. Sebbene il fatto che la classe List usi "Capacity" per un concetto simile (sebbene mutevole) suggerisce che la matrice possa usare la parola "Length" per ragioni storiche.

    
risposta data 26.08.2015 - 13:30
fonte

Leggi altre domande sui tag