返回仅包含值的逗号分隔字符串

本文关键字:分隔 字符串 包含值 返回 | 更新日期: 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);