Entfernen Sie leere Werte mit C # aus dem Array


74

Wie kann ich leere Werte aus einem Array entfernen?

Zum Beispiel:

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

Gibt es in diesem Fall eine Methode, um leere Werte mit C # aus dem Array zu entfernen?

Am Ende möchte ich ein Array in diesem Format erhalten:

test={"1","2","3"};

Das bedeutet, dass 2 Werte aus dem Array entfernt wurden und ich schließlich 3 erhalte.


1
Wie bekommt man den Array-Inhalt, vielleicht könnte etwas getan werden
V4Vendetta

Antworten:


187

Wenn Sie .NET 3.5+ verwenden, können Sie linq verwenden.

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


2
Sollte wahrscheinlich String.IsNullOrEmpty verwenden, um sicher zu sein, sonst schaffen es Nullwerte in das neue Array.
Apiguy

4
Ich musste x.Trim () hinzufügen, um auch Werte zu entfernen, die nur Leerzeichen enthielten: test = test.Where (x =>! String.IsNullOrEmpty (x.Trim ())). ToArray ();
GuidoG

6
String.IsNullOrWhiteSpace würde auch funktionieren, dann müssten Sie nicht jeden Wert
kürzen

34

Sie können Linq verwenden, wenn Sie .NET 3.5 oder höher verwenden:

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

Wenn Sie Linq nicht verwenden können, können Sie dies folgendermaßen tun:

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

3

Ich schreibe unten Code, um den leeren Wert in der Array-Zeichenfolge zu entfernen.

string[] test={"1","","2","","3"};
test= test.Except(new List<string> { string.Empty }).ToArray();

2

Ich bevorzuge zwei Optionen, Leerzeichen und Leerzeichen:

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

Gute Antwort Dies ist relevant, wenn Sie beispielsweise eine CSV-Datei (oder eine Zeichenfolge) analysieren und Felder mit Leerzeichen erhalten.
Tahir Khalid

2
Die IsNullOrWhiteSpace () -Methode betrachtet eine leere Zeichenfolge (ohne Leerzeichen) tatsächlich als Leerzeichen, sodass die Verwendung von IsNullOrEmpty () und IsNullOrWhiteSpace () redundant ist.
Erdferkel
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.