在C#中从List <string>构建一个字符串

pro*_*eek 2 c# list

List<string>有( "ABC", "", "DEF", "", "XYZ"),我怎么能得到的字符串"ABC :: DEF :: XYZ"出在C#中的列表?

添加

List<string> strings = new List<string> {"ABC","","DEF","","XYZ"};
string joined = string.Join("::", strings.ToArray());
Console.WriteLine(joined);
Run Code Online (Sandbox Code Playgroud)

给出ABC::::DEF::::XYZ,而不是ABC::DEF::XYZ如何跳过列表中的空字符串("")?

Ani*_*Ani 7

你可以做:

List<string> strings = ...
string joined = string.Join(":", strings.ToArray());
Run Code Online (Sandbox Code Playgroud)

在.NET 4.0中,您可以省略ToArray()呼叫.

编辑:根据您的更新,表明您要跳过空字符串并使用两个冒号作为分隔符,您可以执行以下操作:

// Use !string.IsNullOrEmpty or !string.IsNullOrWhiteSpace if more appropriate.   
string[] filtered = list.Where(s => s != string.Empty) 
                        .ToArray();

string joined = string.Join("::", filtered);
Run Code Online (Sandbox Code Playgroud)