C# C选择列表中的元素作为字符串列表

C# C选择列表中的元素作为字符串列表,c#,linq,C#,Linq,在C语言中,我需要将一个特定属性的所有值从一个对象列表中获取到一个字符串列表中 List<Employee> emplist = new List<Employee>() { new Employee{ EID=10, Ename="John"}, new Employee{ E

在C语言中,我需要将一个特定属性的所有值从一个对象列表中获取到一个字符串列表中

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函数或一些较短的代码将值从列表对象属性值提取到字符串对象中

我的查询类似于,但我希望结果为字符串列表

List<string> empnames = emplist.Select(e => e.Ename).ToList();
投影基本上是将枚举的当前类型表示为新类型。您可以通过调用构造函数等来投影到匿名类型、另一个已知类型,或者像在您的案例中一样,投影到其中一个属性的可枚举类型

例如,您可以将Employee的可枚举项投影到Tuple的可枚举项,如下所示:

等等。

LINQ的力量。。约翰尼的声音
var empnamesEnum = from emp in emplist 
                   select emp.Ename;
List<string> empnames = empnamesEnum.ToList();
var tuples = emplist.Select(e => new Tuple<int, string>(e.EID, e.Ename));
List<string> empnames = (from e in emplist select e.Enaame).ToList();
string[] empnames = (from e in emplist select e.Enaame).ToArray();