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.