【问题标题】:Comma separated using string.Join with LINQ使用字符串分隔逗号。使用 LINQ 加入
【发布时间】:2015-07-25 16:32:27
【问题描述】:

我在 lambda 表达式中使用了 string.Join 来形成逗号分隔值

我使用以下代码实现了它:

    var viewData = queue.Select(items => new companyQueueWithSegInfo()
{
 segmentName = string.Join(",", items.Select(i => i.seginfo.Trim()));

                                  }).AsQueryable()

}

输出将是:

AB ,CD

但我需要输出为

AB, CD

我试过这样:

string.Join(" ,",items.Select(i => i.segminfo)).Replace(",", ", ").Replace(" ,","")

谁能帮我解决这个问题? 但它没有用。

【问题讨论】:

  • 用 ", " 将它们连接起来,并对 linq 查询的结果使用 Trim()

标签: c# linq lambda


【解决方案1】:

您可以使用Trim() 删除所有前导和尾随空白字符。然后只需将"," 更改为", "

var result = string.Join(", ", items.Where(x => !String.IsNullOrEmpty(x))
                                   .Select(i => i.seginfo.Trim()));

请务必像我一样检查字符串是否为空或 null。

【讨论】:

    【解决方案2】:

    如果seginfostring,那么先Trim 他们再加入", " 怎么样?

    string.Join(", ", items.Select(i => i.seginfo.Trim()));
    

    另外你应该检查你的项目是null还是不是为了防止NRE之类的;

    string.Join(", ", list.Where(s => s != null).Select(i => i.Trim()))
    

    或者可以像其他人提到的那样使用IsNullOrEmpty

    【讨论】:

    • 感谢您的回答。我尝试使用 Trim,但在使用时出现空引用异常
    • @Priya:对空字符串调用 Trim() 将导致空字符串。在 null 上调用 Trim() 将抛出 NullReferenceException
    • @Priya 你有null 值吗?你的items到底是什么?您能否展示一下这个集合以及它在您的问题中的结构?
    • @Priya:- 你可以先试试这样检查你的字符串:string.Join(", ", items.Where(x => !String.IsNullOrEmpty(x)) .Select(i => i.seginfo.Trim()));
    • @Priya 你能用companyQueueWithSegInfo更新你的问题结构吗?
    【解决方案3】:

    使用Trim() 试试这个,即你需要用", " 加入它们,然后使用Trim():

    string.Join(", ",items.Select(i => i.seginfo.Trim()))
    

    要处理字符串的 NULL 条件,试试这个:

    string.Join(", ", items.Where(x => !String.IsNullOrEmpty(x))
                          .Select(i => i.seginfo.Trim()));
    

    【讨论】:

      猜你喜欢
      • 2011-08-07
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 2017-10-09
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 2010-12-20
      相关资源
      最近更新 更多