1

次のような浮動小数点のリストがあります。

wayPoints = (new PointF[] { 
new PointF(18, 0), 
new PointF(18,0), 
new PointF(55, 155),
new PointF(55, 155),
new PointF(55, 155),
new PointF(55, 155),
new PointF(55, 0),
new PointF(55, 230)}).ToList();

同じポイントがリストから削除されたが、それらの同じポイントの1つがリストに残っているラムダ式を使用したい

出力:

wayPoints = 
(new PointF[] { 
 new PointF(18, 0),
 new PointF(55, 155),
 new PointF(55, 0),
 new PointF(55, 230)}
).ToList();

ラムダ式でコマンドをどのように書くべきですか?

4

2 に答える 2

2

Distinctは重複を削除します:

var distinctPoints = wayPoints.Distinct();

ただし、結果には、{(18、0)、(10、10)、(18、0)}のようなシーケンスであっても、PointF(18、0)が1つだけ含まれます。連続していないポイントを保持したいかどうかはわかりません。

于 2012-04-17T08:15:04.763 に答える
1

ポイントのリストであれば、これを行うことができます(最初に配列とを行う必要はありませんToList()):

var wayPoints = new List<PointF>{ 
    new PointF(18, 0), 
    new PointF(18,0), 
    new PointF(55, 155),
    new PointF(55, 155),
    new PointF(55, 155),
    new PointF(55, 155),
    new PointF(55, 0),
    new PointF(55, 230)
};

ユニークなポイントが必要な場合。使用できますDistinct。このような:

var wayPoints = (new PointF[] { 
new PointF(18, 0), 
new PointF(18,0), 
new PointF(55, 155),
new PointF(55, 155),
new PointF(55, 155),
new PointF(55, 155),
new PointF(55, 0),
new PointF(55, 230)}).ToList();
var uniquePoints=wayPoints.Distinct().ToList();
于 2012-04-17T08:06:43.757 に答える