2010-03-06 29 views
16

Một mảng được xác định các phần tử giả định như tôi có mảng như Chuỗi [] strArray = new String [50];.Có bao nhiêu phần tử của mảng không rỗng?

Hiện tại từ 50 phần tử chỉ có một số phần tử được gán và còn lại được để trống, sau đó tôi muốn số lượng phần tử được gán.

Giống như ở đây, chỉ có 30 phần tử được gán thì tôi muốn con số đó.

Trả lời

27

Bạn có thể sử dụng Enumerable.Count:

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

này extension method lặp mảng và đếm số phần tử của đã áp dụng vị từ đã chỉ định.

+0

Ở đây tôi không thể nhận thuộc tính Đếm của mảng như strArray ở đây ... – Harikrishna

+1

Mã sử ​​dụng LINQ. Bạn cần thêm 'using System.Linq;' ở đầu tệp nguồn của bạn để hiển thị các phương thức mở rộng LINQ. – dtb

+0

Có giống như kiểm tra mọi lúc cho từng phần tử của strArray mà nó là null hay không trong vòng lặp for? – Harikrishna

7

Sử dụng LINQ bạn có thể thử

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

Bạn đánh bại 5.37 giây của tôi :) Nhưng OP có muốn các phần tử null hoặc không null không? – slugster

+0

Đúng, xin lỗi, đã sửa nó. –

+0

@AstanderSir .. Cảm ơn .... – Harikrishna

1

Sử dụng LINQ:

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

@slugster luôn luôn đá !! :) – BreakHead

+0

Mmmmm cảm ơn?!?! Những người khác có câu trả lời ngắn gọn hơn tôi. – slugster

+0

Câu trả lời hay Cám ơn ... – Harikrishna

Các vấn đề liên quan