2011-06-28 5 views
0

それぞれのオブジェクトのリストは、独自のidプロパティを持っています。私は格納されたオブジェクトからIDのicollectionを作成する必要があります。オブジェクトのリストをループする以外に、id値を取得してコレクションにダンプする以外に、エレガントな方法がありますか?事前にc#コレクションと各プロパティの値を新しい配列に取り込みます

おかげ

答えて

3

LINQはあなたの友達です:)

List<int> ids = entities.Select(x => x.Id).ToList(); 

または配列にあなたが(質問のタイトルごとに)必要であれば:

もちろん
int[] ids = entities.Select(x => x.Id).ToArray(); 

がないことコレクションを繰り返し処理しますが、コードは自分で書く必要はありません。

基本的には、コレクションの変換、集約、フィルタリング、フラット化など、 "これと似たようなこと"をしたいときは、LINQがあなたを助けることができるかどうかを調べる必要があります。

+0

OPへ:宣言的なコードと命令的なコード。 – jason

3

方法(あなたのケースだけIdに)したいプロパティを持つSelect()投影を使用して(あなたのための反復処理を行います)のLINQの使用方法について:

var idCollection = someList.Select(x=> x.Id).ToList(); 
0

LINQの救助へ:

var names=Controls.Select(w=>w.Name).ToArray();  // where this is a form 
関連する問題