私はLine
クラスのリストを持っています。 LINQを使用してP1
とP2
のすべての行のプロパティをPoints<Point>
listに抽出するにはどうすればよいですか?リストの2つのプロパティを抽出する<T> LINQをC#で使用する
public class Line
{
public Point P1;
public Point P2;
}
var points = Lines.Select()?
私はLine
クラスのリストを持っています。 LINQを使用してP1
とP2
のすべての行のプロパティをPoints<Point>
listに抽出するにはどうすればよいですか?リストの2つのプロパティを抽出する<T> LINQをC#で使用する
public class Line
{
public Point P1;
public Point P2;
}
var points = Lines.Select()?
多くの方法があります。
var points = lines.SelectMany(x => new[] {x.P1,x.P2}).ToList();
それとも、このようなConcat
を使用することができます:
あなたはこのようSelectMany
を使用することができます(優れている)最初のバージョンは一度だけリストを列挙していることに注意してください
var points = lines.Select(x => x.P1).Concat(lines.Select(x => x.P2)).ToList();
、 2番目のバージョンでは2回実行されます。
あなたは `lines.Select(X =>新しい[] {x.P1、x.P2を})意味したAddRange
var points = Lines.Select(x=>x.P1).ToList();
points.AddRange(Lines.Select(x=>x.P2));
を使用することができます。SelectMany(Y => y)を.ToList() '? – BrokenGlass
違いがありますか? –
は実際にコンパイルを試みていませんが、最初のバージョンではanonオブジェクトのリストを作成していませんか? – BrokenGlass