从c#中的列表创建逗号分隔列表而不终止逗号

时间:2014-01-07 07:26:11

标签: c# string list comma

我有一个列表,我想在C#中使用IN语句中的成员。使用string.Join  在列表的末尾插入一个逗号,这是不需要的。我该怎么办?

 string sql = string.Format(@"SELECT I.ItemId FROM POS.Item I WHERE
I.Code IN ({0})", string.Join(",", code.ToArray()));

2 个答案:

答案 0 :(得分:2)

您可以在code中使用空字符串或空值。

看看这个:

string joined = string.Join(",", new string[] { "asdf", "qwer", "" });
Console.WriteLine(joined);

string joined = string.Join(",", new string[] { "asdf", "qwer", null });
Console.WriteLine(joined);

两者都给:

asdf,qwer,

答案 1 :(得分:0)

列表中必须有空字符串,这就是为什么它在字符串末尾添加额外的逗号,否则string.Join永远不会添加额外的逗号。如果是这种情况,那么您应该通过TrimEnd()函数删除多余的逗号,如

string sql = string.Format(@"SELECT I.ItemId FROM POS.Item I WHERE
I.Code IN ({0})", string.Join(",", code.ToArray()).TrimEnd(','));