2013-12-11 5 views
1

В настоящее время у меня есть List<object> вот так: List<USER>.Получить список <Object> в список <String>

В классе User у меня есть колонка с именем UserName.

Я хочу получить этот столбец до List<string>.

Как это можно использовать без использования foreach для List<USER>?

Спасибо.

+0

Смотреть это: http://stackoverflow.com/questions/7187409/c-linq-apply-a-mapping-function-to-each-element- in-anenumerable –

ответ

9

Вы можете использовать LINQ:

List<string> userNames = users.Select(u => u.UserName).ToList(); 
+0

Важно отметить, что внутренне это все еще разрешено с помощью цикла foreach ... но опять же, нет никакого способа обойти это. – Tobberoth

+0

@Tobberoth: Да, конечно, LINQ не может выполнять магию;) Но это может повысить читаемость, что более важно, чем несколько миллисекунд в любом случае. –

+0

woa, спасибо Tim много. Это сэкономило мне много времени. – user3011414

1

В дополнение к Тиму Schmelter пост:

Для литья IEnumerable<object> к IEnumerable<USER> вы можете использовать Cast<T> или OfType<T> метод.

Это можно записать следующим образом:

var userNames = users.Cast<USER>.Select(u => u.UserName).ToList(); 
Смежные вопросы