範囲

2017-02-22 8 views
0

内の特定のオブジェクトのフィールドを取得します私はのは、私はLINQで与えられた範囲内のすべてのId年代のList<int>を取得するにはどうすればよい、(minIndex, maxIndex)が言う?範囲

public class Point { 
    public double X; 
    public int Id; 
} 

List<Point> points = (...); 

を言わせて、リストのOSに複合型を持っていますか

points.getRange(minIndex, maxIndex - maxIndex)ですべてのポイントオブジェクトを取得できましたが、Idフィールドのリストはどのように取得できますか?

+0

IDの値の範囲ではなく、 'Point'のインデックスに?=!私は正しい? –

答えて

3

あなたは次のようにSelectステートメントを使用することができます。

var ids = points.getRange(minIndex, maxIndex - maxIndex) 
       .Select(x => x.Id) 
       .ToList(); 
私はあなたが興味を持っているGetRange` `の使用から見るように
1

シンプル:あなたはIDのみが必要な場合

var ids = points.Where(x => x.Id >= minIndex && xId <= maxIndex) 
    .Select(x => x.Id) 
    .ToList(); 
0
var ids = points.Where(p => (p.Id >= minIndex) && 
         (p.Id <= maxIndex)) 
       .Select(p => p.Id) 
       .ToList();