linq 更新 - C#リスト内の要素を文字列リストとして選択する





取得 検索 (3)


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

または

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

等...

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関数またはより短いコードを使用できるかどうかを知りたい。

私のクエリはIListのC#select要素と似ていますが、結果を文字列のリストとして欲しいです




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

これはLinq射影の例です。 ToListが続き、 IEnumerable<string>List<string>ます。

Linqの構文(head compiled)では次のようになります。

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

投影は、基本的に、新しいタイプの列挙型の現在のタイプを表します。 あなたは匿名型、コンストラクタなどを呼び出すことによって別の既知の型、またはプロパティのうちの1つを列挙することができます(あなたの場合のように)。

たとえば、 Employeeの列挙型をTuple<int, string>列挙型に投影すると、次のようになります。

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



私はパーティーに遅れていますが、ここには1つのライナーがあります:

int age = new DateTime(DateTime.Now.Subtract(birthday).Ticks).Year-1;




c# linq