【问题标题】:Return comma delimited string with just the values返回仅包含值的逗号分隔字符串
【发布时间】:2014-05-16 05:16: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);

我已尝试 liftsOpens.LiftName,但出现错误,我必须使用 Replace 还是有简单的方法?

【问题讨论】:

    标签: c# linq anonymous-class


    【解决方案1】:

    在您的 Linq 语句中,您正在选择一个匿名对象列表,这些对象的属性包含您需要的值。因此,您将匿名对象列表传递给string.Join()
    但我认为您想要枚举这些 strings(这里不需要匿名对象)...

    所以你可以试试select li.LiftName 而不是select new {li.LiftName}

    如果您使用 .NET ,则需要调用 .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);
    

    【讨论】:

      猜你喜欢
      • 2015-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 2013-09-30
      相关资源
      最近更新 更多