Подтвердить что ты не робот

С# Выбрать элементы в списке как Список строк

В С# мне нужно получить все значения определенного свойства из списка объектов в список строки

List<Employee> emplist = new List<Employee>()
                                {
                                 new Employee{ EID=10, Ename="John"},
                                 new Employee{ EID=11, Ename="Adam"},
                                 new Employee{ EID=12, Ename="Ram"}
                                };
List<string> empnames = emplist.//get all Enames in 'emplist' object into list
                         //using linq or list functions or IENumerable  functions

Мне знакомы с методом foreach для извлечения значения, но я хочу знать , если \, как его возможно использовать функции linq или IENumerable или какой-либо более короткий код для извлечения значений из значений свойств объекта списка в строковый объект.

Мой запрос похож на С# выбирать элементы из IList, но я хочу, чтобы результат был как список строк

4b9b3361

Ответ 1

List<string> empnames = emplist.Select(e => e.Ename).ToList();

Это пример Проекции в Linq. Затем выполните ToList, чтобы разрешить IEnumerable<string> в List<string>.

Альтернативно в синтаксисе Linq (скомпилированный головой):

var empnamesEnum = from emp in emplist 
                   select emp.Ename;
List<string> empnames = empnamesEnum.ToList();

Проецирование в основном представляет текущий тип перечисляемого как новый тип. Вы можете проецировать анонимные типы, другой известный тип, вызывая конструкторы и т.д. Или перечислимые из одного из свойств (как в вашем случае).

Например, вы можете проецировать перечисление Employee на перечислимое значение Tuple<int, string> следующим образом:

var tuples = emplist.Select(e => new Tuple<int, string>(e.EID, e.Ename));

Ответ 2

List<string> empnames = (from e in emplist select e.Enaame).ToList();

или

string[] empnames = (from e in emplist select e.Enaame).ToArray();

Etc...