0

我想返回给定列表的复制版本,其中每个元素都乘以一个标量。

...
int attenuation = 3;
return new List<double>(VoltsPerDivX1.Select(x => x*attenuation));

VoltsPerDivX1是一个现有的类型列表List<double>。这是正确的方法还是有更好的方法?

4

1 回答 1

5

这稍微更惯用:

return VoltsPerDivX1.Select(x => x * attenuation).ToList();

Select(...)如果您的调用发出匿名类型,它也表现良好。在您的示例中,您必须能够表达构造函数调用的列表类型。如果您要执行以下操作:

return VoltsPerDivX1
    .Select(x => new { original = x, attenuated =  x * attenuation })
    .ToList();

由于类型是匿名的,因此无法表示列表的参数类型。IEnumerable使用.ToList(). _ 还有.ToArray()

于 2013-04-26T19:50:12.700 回答