In una recente intervista mi è stato chiesto quale fosse la differenza tra .Any()
e .Length > 0
e perché avrei usato entrambi durante il test per vedere se una raccolta avesse elementi.Domanda di intervista: .Any() vs if (.Length> 0) per verificare se una raccolta ha elementi
Questo mi ha gettato un po 'come sembra un po' ovvio, ma sento che potrebbe mancare qualcosa.
Ho suggerito di utilizzare .Length
quando è semplicemente necessario sapere che una raccolta contiene elementi e .Any()
quando si desidera filtrare i risultati.
Presumibilmente .Any()
prende un colpo di prestazioni troppo come deve fare un ciclo/query internamente.
Solo curioso, era un'opzione '.Count()? Userà '.Length' (in realtà' .Count' dall'interfaccia 'ICollection') se disponibile, ed enumererà se non ...' .Any() 'non ha una scorciatoia come questa. –
Ho sempre pensato che le proprietà native siano precalcolate se sono disponibili come '.length' per array e' .count' per la raccolta. Perciò userei '.any()' solo se hey non è disponibile o voglio un controllo '.any (lambda) 'condizionale. – Nope