返回仅包含值的逗号分隔字符串
本文关键字:分隔 字符串 包含值 返回 | 更新日期: 2023-09-27 18:03:33
我有下面的代码,几乎可以完美地工作,但它返回一个逗号分隔的名称值对字符串,如下所示。
{ stringName = Fred },
{ stringName = Monkey Bars },
{ stringName = Eagles }
我想要的是一个用逗号分隔的字符串。
Fred, Monkey Bars, Eagles
和我的代码
var liftsOpens =
(from li in db.Lifts
where li.LiftStatusMorning == "Open"
select new {li.LiftName}).ToList();
var lom = string.Join(",", liftsOpens);
我试过 liftsopened。LiftName但我得到错误,我是否必须使用取代或有一个简单的方法?
在您的linq语句中,您正在选择一个匿名对象列表,这些对象具有包含您需要的值的属性。因此,您正在将匿名对象列表传递给string.Join()
但是我认为你需要的是这些字符串的枚举(这里不需要匿名对象)…
所以你可以试试select li.LiftName
而不是select new {li.LiftName}
。
如果你使用.NET <4.0,你需要调用.ToArray()
而不是.ToList()
来使string.Join()
正常工作(参见MSDN: .NET 3.5/.NET 4.0)
var liftsOpens =
(from li in db.Lifts
where li.LiftStatusMorning == "Open"
select li.LiftName) // <<== Select the string
.ToArray(); // <<== If .NET prior to 4.0
var lom = string.Join(",", liftsOpens);