【问题标题】:Creating comma separated list from a list in c# without terminating comma从 C# 中的列表创建逗号分隔列表而不终止逗号
【发布时间】:2014-01-07 07:26:10
【问题描述】:

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

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

【问题讨论】:

  • 在代码变量中显示数据。那不是加入的行为。加入不放,到底
  • String.Join 不会在结果末尾添加separator。您的代码一定有不同的问题。
  • 你有一个空字符串(或.ToStrings 的东西) - 或null - 在code
  • @BenAllred:你是对的!!!我有一个空字符串,我没有考虑它
  • @fasadat:我刚刚从中创建了一个答案。

标签: c# string list comma


【解决方案1】:

code 中可以有一个空字符串或 null。

看看这个:

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,

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      • 1970-01-01
      相关资源
      最近更新 更多