У меня есть следующий код, который почти отлично работает, но он возвращает строку с разделителями-запятыми пар значений имен, как показано ниже.
{ 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 вы выбираете список анонимных объектов, у которых есть свойство, которое содержит нужное значение. Итак, вы передаете список ваших анонимных объектов в 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);