我有一个列表,我想在C#中使用IN
语句中的成员。使用string.Join
在列表的末尾插入一个逗号,这是不需要的。我该怎么办?
string sql = string.Format(@"SELECT I.ItemId FROM POS.Item I WHERE
I.Code IN ({0})", string.Join(",", code.ToArray()));
答案 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(','));