"智能"连接字符串的方法?

时间:2017-08-24 00:47:03

标签: c# string concatenation

我正在寻找一个" smart"用分隔符连接字符串的方法。显然我可以自己编写所有这些代码,所以我想知道是否有一种简单的方法(LINQ或者其他一些我不知道的方法)来做这件事。

假设我有一组字符串(可以是任意数量的字符串):

string s1 = "a";
string s2 = "b";
string s3 = "c";

我想连接字符串,结果类似于a, b, c。这很容易,但这就是扭曲:如果任何字符串都是空的,我不想要额外的逗号。

例如,如果这是我的设置:

string s1 = "";
string s2 = "b";
string s3 = "c";

我希望结果为b, c(如果cs1都为空,则只需s2

有一种简单的方法吗?

3 个答案:

答案 0 :(得分:2)

使用string.Join(...)

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)));
相关问题