C# 列表<;字符串>;以逗号分隔的字符串和最后一个不带逗号的值

C# 列表<;字符串>;以逗号分隔的字符串和最后一个不带逗号的值,c#,linq,C#,Linq,我有一个字符串列表,其中包含x个数量的项。我想创建一个字符串,项目应以逗号分隔,如下所示: string result = val1, val2, val3, ... valx string result = val1, val2, val3, ... valx,[space] string result = string.Join(", ", myList).TrimEnd(',',' '); 但我不希望最后一个值后跟逗号+空格 这就是我尝试的结果,结果在字符串的末尾添加了一个逗号+空格

我有一个字符串列表,其中包含x个数量的项。我想创建一个字符串,项目应以逗号分隔,如下所示:

string result = val1, val2, val3, ... valx
string result = val1, val2, val3, ... valx,[space]
string result = string.Join(", ", myList).TrimEnd(',',' ');
但我不希望最后一个值后跟逗号+空格

这就是我尝试的结果,结果在字符串的末尾添加了一个逗号+空格

  string result = string.Join(", ", myList.Select(x => x.ToString()));
结果如下:

string result = val1, val2, val3, ... valx
string result = val1, val2, val3, ... valx,[space]
string result = string.Join(", ", myList).TrimEnd(',',' ');
注意:看起来您的输入
myList
是一个
字符串列表
,因此您不需要
ToString()
,只需这样做:

string result = val1, val2, val3, ... valx
string result = val1, val2, val3, ... valx,[space]
string result = string.Join(", ", myList).TrimEnd(',',' ');
注意:看起来您的输入
myList
是一个
字符串列表
,因此您不需要
ToString()
,只需这样做:

string result = val1, val2, val3, ... valx
string result = val1, val2, val3, ... valx,[space]
string result = string.Join(", ", myList).TrimEnd(',',' ');

然后在列表的末尾有一个空格。是否确实要将其从逗号分隔的lis中删除?这意味着您的项目计数小于列表的项目计数

string result = string.Join(", ", myList.Where(x => !string.IsNullOrWhiteSpace(x)));

然后在列表的末尾有一个空格。是否确实要将其从逗号分隔的lis中删除?这意味着您的项目计数小于列表的项目计数

string result = string.Join(", ", myList.Where(x => !string.IsNullOrWhiteSpace(x)));

请检查您的
myList
以获取whitepsace

没有空格

        List<string> myList = new List<string>{"1", "2", "3", "4", "5", "6"};
        string result = string.Join(", ", myList.ToArray());
        Console.WriteLine(result);
        List<string> myListSpace = new List<string> { "1", "2", "3", "4", "5", "6"," " };
        string resultSpace = string.Join(", ", myListSpace.ToArray());
        Console.WriteLine(resultSpace);
输出:
1,2,3,4,5,6[空格]

您问题的解决方案:


string result=string.Join(“,”,myListSpace.Where(s=>!string.IsNullOrWhiteSpace(s)).ToArray()

请查看您的
myList
以获取whitepsace

没有空格

        List<string> myList = new List<string>{"1", "2", "3", "4", "5", "6"};
        string result = string.Join(", ", myList.ToArray());
        Console.WriteLine(result);
        List<string> myListSpace = new List<string> { "1", "2", "3", "4", "5", "6"," " };
        string resultSpace = string.Join(", ", myListSpace.ToArray());
        Console.WriteLine(resultSpace);
输出:
1,2,3,4,5,6[空格]

您问题的解决方案:


string result=string.Join(“,”,myListSpace.Where(s=>!string.IsNullOrWhiteSpace(s)).ToArray()

为什么使用
String.ToString()
?能否确认项目x是空白?否则,您将无法在结尾处获得
。为什么要使用
String.ToString()
?能否确认项目x是空白?否则,您将无法在最后获得
。您忘记了将
排列到
String.Join
不接受
IEnumerable
,只接受
String[]
@KonradMorawski:它接受,从.NET 4开始。你忘了把
放在阵列上了
String.Join
不接受
IEnumerable
,只接受
String[]
@KonradMorawski:它接受,从.NET 4开始。如果
x
是一个字符串,则不需要
.Select(x=>x.ToString())
。如果
x
不是字符串,则
x.Trim()
可能不会编译。如果
x
是字符串,则
.Select(x=>x.ToString())
是不必要的。如果
x
不是字符串,则
x.Trim()
可能不会编译。