Преобразование списка одного типа в список другого типа в C # 3.5 - PullRequest
3 голосов
/ 24 августа 2010

У меня есть объект со свойствами ID и Name.

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

List<string> myObjectNames = myObjectList.?

1 Ответ

18 голосов
/ 24 августа 2010

Если вы знаете, что это определенно List<T>, а не другой тип коллекции, вы можете использовать List<T>.ConvertAll:

Преобразует элементы в текущий List<T>к другому типу и возвращает список, содержащий преобразованные элементы.

Пример:

List<string> myObjectNames = myObjectList.ConvertAll(x => x.Name);

Если вы просто знаете, что это перечислимый тип, но не обязательнозатем вы можете использовать методы расширения LINQ Enumerable<T>.Select и Enumerable<T>.ToList:

List<string> myObjectNames = myObjects.Select(x => x.Name).ToList();
...