我在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(" ,","")
任何人都可以帮我吗? 但它没有用。
答案 0 :(得分:4)
如果seginfo
是string
,那么首先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()));