2010-03-06 30 views
16

Bir dizi, dizesi gibi varsayılan öğeleri tanımlamıştır. String [] strArray = new String [50];.Dizi kaç öğe null değil?

Şimdi 50 öğeden yalnızca bazı öğeler atanmış ve kalanlar boş bırakılmıştır, ardından atanan öğelerin sayısını istiyorum.

Burada sadece 30 element atanmış, sonra o rakamı istiyorum.

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

cevap

27

Sen Enumerable.Count kullanabilirsiniz:

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

Bu extension method yineler dizisi ve elemanların sayısını sayar Entities kullanarak

+0

Burada strArray gibi dizinin Count özelliğini alamıyorum ... – Harikrishna

+1

Kod LINQ kullanır. LINQ uzantı yöntemlerini görünür yapmak için kaynak dosyanızın en üstünde System.Linq; 'kullanarak eklemelisiniz. – dtb

+0

StrArray öğesinin her öğesinin, boş değer olup olmadığını kontrol etmek için her zaman aynı mı? – Harikrishna

7

Eğer

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

5.37 saniyemi aşıyorsunuz :) Ama OP null veya null olmayan elemanlar istiyor mu? – slugster

+0

Doğru, üzgünüm, düzeltildi. –

+0

@AstanderSir .. Teşekkürler .... – Harikrishna

1

Kullanım LINQ deneyebilirsiniz belirtilen yükleme için geçerlidir.

+0

@slugster her zaman rock !! :) – BreakHead

+0

Mmmmm teşekkürler?!?! Diğer adamların benden daha kısa cevapları vardı. – slugster

+0

İyi Yanıt Teşekkürler ... – Harikrishna