String.Join method that ignores empty strings?

Doug picture Doug · May 1, 2013 · Viewed 67.8k times · Source

The VB.NET method String.Join(separator, stringArray) is similar to PHP's implode, but any null elements in the array are replaced with an empty string, so thatc:

Dim myArray() as String = { "a", null, "c" }
Console.WriteLine(String.Join(", ", myArray));
// Prints "a, , c"

Is there a simple way to concatenate a set of strings with a separator that ignores empty strings?

I don't necessarily need to use arrays or String.Join or anything else. I just need the following transformations:

("a", "b", "c") --> "a, b, c"
("a", null, "c") --> "a, c"

Answer

Damith picture Damith · May 1, 2013

VB.NET

String.Join(",", myArray.Where(Function(s) Not String.IsNullOrEmpty(s)))

C#

String.Join(",", myArray.Where(s => !string.IsNullOrEmpty(s)))