それぞれのオブジェクトのリストは、独自のidプロパティを持っています。私は格納されたオブジェクトからIDのicollectionを作成する必要があります。オブジェクトのリストをループする以外に、id値を取得してコレクションにダンプする以外に、エレガントな方法がありますか?事前にc#コレクションと各プロパティの値を新しい配列に取り込みます
おかげ
それぞれのオブジェクトのリストは、独自のidプロパティを持っています。私は格納されたオブジェクトからIDのicollectionを作成する必要があります。オブジェクトのリストをループする以外に、id値を取得してコレクションにダンプする以外に、エレガントな方法がありますか?事前にc#コレクションと各プロパティの値を新しい配列に取り込みます
おかげ
LINQはあなたの友達です:)
List<int> ids = entities.Select(x => x.Id).ToList();
または配列にあなたが(質問のタイトルごとに)必要であれば:
もちろんint[] ids = entities.Select(x => x.Id).ToArray();
がないことコレクションを繰り返し処理しますが、コードは自分で書く必要はありません。
基本的には、コレクションの変換、集約、フィルタリング、フラット化など、 "これと似たようなこと"をしたいときは、LINQがあなたを助けることができるかどうかを調べる必要があります。
方法(あなたのケースだけId
に)したいプロパティを持つSelect()
投影を使用して(あなたのための反復処理を行います)のLINQの使用方法について:
var idCollection = someList.Select(x=> x.Id).ToList();
LINQの救助へ:
var names=Controls.Select(w=>w.Name).ToArray(); // where this is a form
OPへ:宣言的なコードと命令的なコード。 – jason