6

我想翻译 a 中的所有点List<T>。这有效:

for (int i = 0; i <PolygonBase.Count; ++i) 
{
    PolygonBase[i] = PolygonBase[i] + MousePos;
}

但使用List<T>.ForEach不会:

PolygonBase.ForEach(v => v += MousePos);

想法?

4

1 回答 1

11

您当前的代码只是将局部变量重新分配v给一个新值 - 它不会引用列表中的原始值。这相当于写作:

foreach(int v in PolygonBase)
{
    v += MousePos;
}

要写回原始值,请使用ConvertAll

PolygonBase.ConvertAll(v => v += MousePos);
于 2011-02-17T20:59:13.543 回答