2010-03-06 24 views
16

Una matriz se define de elementos asumidos como I have array como String [] strArray = new String [50];.¿Cuántos elementos de la matriz no son nulos?

Ahora, de 50 elementos, solo se asignan algunos elementos y los restantes se dejan nulos, entonces quiero el número de elementos asignados.

Como aquí solo se asignan 30 elementos, entonces quiero esa cifra.

Respuesta

27

Usted puede utilizar Enumerable.Count:

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

Este extension method reitera la matriz y cuenta el número de elementos de las predicado especificado se aplica a.

+0

Aquí no puedo obtener la propiedad Count de array como strArray aquí ... – Harikrishna

+1

El código utiliza LINQ. Debe agregar 'using System.Linq;' en la parte superior de su archivo fuente para hacer que los métodos de extensión LINQ sean visibles. – dtb

+0

¿Es lo mismo hacer cada vez que compruebe cada elemento de strArray que es nulo o no en el ciclo for? – Harikrishna

7

mediante LINQ puede probar

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

Batiste mis 5,37 segundos :) Pero, ¿el OP desea elementos nulos o no nulos? – slugster

+0

Es verdad, lo siento, lo solucioné. –

+0

@AstanderSir .. Gracias .... – Harikrishna

1

uso de LINQ:

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

@slugster siempre rock !! :) – BreakHead

+0

Mmmmm gracias?!?! Los otros chicos tuvieron respuestas más concisas que yo. – slugster

+0

Buena respuesta Gracias ... – Harikrishna

Cuestiones relacionadas