のすべてのポイントを翻訳したいList<T>
。これは機能します:
for (int i = 0; i <PolygonBase.Count; ++i)
{
PolygonBase[i] = PolygonBase[i] + MousePos;
}
しかし、使用List<T>.ForEach
はしません:
PolygonBase.ForEach(v => v += MousePos);
アイデア?
のすべてのポイントを翻訳したいList<T>
。これは機能します:
for (int i = 0; i <PolygonBase.Count; ++i)
{
PolygonBase[i] = PolygonBase[i] + MousePos;
}
しかし、使用List<T>.ForEach
はしません:
PolygonBase.ForEach(v => v += MousePos);
アイデア?
現在のコードは、ローカル変数を新しい値に再割り当てしているだけですv
。リスト内の元の値を参照しているわけではありません。これは、次のように書くのと同じです。
foreach(int v in PolygonBase)
{
v += MousePos;
}
元の値に書き戻すには、次を使用しますConvertAll
。
PolygonBase.ConvertAll(v => v += MousePos);