2012-01-11 13 views
49

Esiste un metodo che rimuovono indexs vuote dalla matrice esRimuovi valori vuoti nella matrice utilizzando C#

string[] test={"1","","2","","3"}; 

in questo caso c'è qualche metodo descritto per la rimozione indice vuoto dalla matrice utilizzando C# a alla fine voglio ottenere array in questo formato test={"1","2","3"}; che significano due indice di rimuovere dalla matrice e finalmente ho ottenuto 3 indice I'am non wriing codice esatto per array di questo è indizio che voglio fare

+1

Come si ottiene il contenuto dell'array, forse qualcosa potrebbe essere fatto il proprio – V4Vendetta

risposta

134

Se stai usando .NET 3.5+ d usa linq.

test = test.Where(x => !string.IsNullOrEmpty(x)).ToArray();

+2

Probabilmente si dovrebbe usare String.IsNullOrEmpty per essere sicuri, altrimenti i valori nulli lo renderanno nel nuovo array. – apiguy

+0

Grazie funziona –

+1

Ho dovuto aggiungere x.Trim() per eliminare anche i valori che contenevano solo spazi: test = test.Where (x =>! String.IsNullOrEmpty (x.Trim())). ToArray() ; – GuidoG

25

È possibile utilizzare Linq nel caso in cui si utilizza .NET 3.5 o versione successiva:

test = test.Where(x => !string.IsNullOrEmpty(x)).ToArray(); 

Se non è possibile utilizzare LINQ allora si può fare in questo modo:

var temp = new List<string>(); 
foreach (var s in test) 
{ 
    if (!string.IsNullOrEmpty(s)) 
     temp.Add(s); 
} 
test = temp.ToArray(); 
Problemi correlati