使用string.Join和LINQ分隔逗号

时间:2015-05-14 06:38:12

标签: c# linq lambda

我在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(" ,","")

任何人都可以帮我吗?  但它没有用。

3 个答案:

答案 0 :(得分:4)

如果seginfostring,那么首先Trim如何,然后加入", "

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

另外,您应该检查您的项目是否为null,以防止NRE之类的;

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

或可以像其他人一样使用IsNullOrEmpty

答案 1 :(得分:2)

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

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

一定要像我一样检查字符串是否为空或为空。

答案 2 :(得分:1)

使用Trim()尝试此操作,即您需要使用", "加入它们,然后使用修剪():

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

要处理字符串的NULL条件,请尝试:

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