2010-03-06 14 views
16

Tablica jest zdefiniowana z założonych elementów, takich jak Mam tablicę taką jak String [] strArray = new String [50];.Ile elementów tablicy ma wartość zerową?

Teraz z 50 elementów tylko niektóre elementy są przypisane, a pozostałe są puste, a ja chcę liczbę przypisanych elementów.

Tak jak tutaj, tylko 30 elementów jest przypisanych, chcę tę cyfrę.

Odpowiedz

27

Można użyć Enumerable.Count:

string[] strArray = new string[50]; 
... 
int result = strArray.Count(s => s != null); 

This extension method iteracje tablicy i zlicza ilość elementów w określony predykat dotyczy.

+0

Tutaj nie mogę uzyskać właściwości Counta tablicy jak strArray tutaj ... – Harikrishna

+1

Kod używa LINQ. Musisz dodać 'using System.Linq;' u góry pliku źródłowego, aby metody LINQ były widoczne. – dtb

+0

Czy to samo robić za każdym razem sprawdzając, czy każdy element strArray ma wartość zerową w pętli for? – Harikrishna

7

Używanie LINQ można spróbować

int count = strArray.Count(x => x != null); 
+1

Pokonałeś moje 5,37 sekundy :) Ale czy OP chce mieć wartości zerowe czy nie puste? – slugster

+0

To prawda, przepraszam, naprawiłem to. –

+0

@AstanderSir .. Dzięki .... – Harikrishna

1

używać LINQ:

int i = (from s in strArray where !string.IsNullOrEmpty(s) select s).Count(); 
+0

@slugster zawsze rock !! :) – BreakHead

+0

Mmmmm dzięki?!?! Pozostali faceci mieli bardziej zwięzłe odpowiedzi niż ja. – slugster

+0

Dobra odpowiedź Dzięki ... – Harikrishna

Powiązane problemy