我正在寻找一个" smart"用分隔符连接字符串的方法。显然我可以自己编写所有这些代码,所以我想知道是否有一种简单的方法(LINQ或者其他一些我不知道的方法)来做这件事。
假设我有一组字符串(可以是任意数量的字符串):
string s1 = "a";
string s2 = "b";
string s3 = "c";
我想连接字符串,结果类似于a, b, c
。这很容易,但这就是扭曲:如果任何字符串都是空的,我不想要额外的逗号。
例如,如果这是我的设置:
string s1 = "";
string s2 = "b";
string s3 = "c";
我希望结果为b, c
(如果c
和s1
都为空,则只需s2
。
有一种简单的方法吗?
答案 0 :(得分:2)
using System;
using System.Linq;
using System.Collections.Generic;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
string space = " ";
string a = "One";
string b = "Two";
string c = "Three";
var filteredList = (new List<string> { space, a, b, c }).Where(x => !string.IsNullOrWhiteSpace(x));
string abc = string.Join(", ", filteredList);
Console.WriteLine(abc); //One, Two, Three
Console.ReadKey();
}
}
}
答案 1 :(得分:2)
string.Join(",", SOME_STRING_COLLECTION.Where(x => !string.IsNullOrWhiteSpace(x)));
答案 2 :(得分:1)
var list = new List<string>{"a","b","", null};
var res = string.Join(", ", list.Where(s => !string.IsNullOrEmpty(s)));