Вернуть строку с разделителями-запятыми, используя только значения

1

У меня есть следующий код, который почти отлично работает, но он возвращает строку с разделителями-запятыми пар значений имен, как показано ниже.

{ 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 или есть простой способ?

Теги:
linq
anonymous-class

1 ответ

2
Лучший ответ

В вашем объявлении Linq вы выбираете список анонимных объектов, у которых есть свойство, которое содержит нужное значение. Итак, вы передаете список ваших анонимных объектов в string.Join()
Но я думаю, вам нужно перечисление этих строк (нет необходимости в анонимных объектах здесь)...

Вы можете попробовать select li.LiftName вместо того, чтобы select new {li.LiftName}.

И если вы используете .NET <4.0, вам нужно вызвать .ToArray() вместо .ToList() чтобы make 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);
  • 0
    Благодаря chanp, .NET 4.5 работал как шарм!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню