2013-04-26 65 views
0

我想返回給定列表的複製版本,其中每個元素都乘以標量。返回複製和相乘列表

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

VoltsPerDivX1List<double>類型的現有列表。這是正確的方式還是有更好的?

回答

5

這是稍微更地道:

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

它也表現良好,如果你的電話Select(...)發出匿名類型。在你的例子中,你必須能夠表達構造函數調用的列表類型。如果你是做這樣的事情:

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

參數類型列表中無法表達,因爲類型是匿名的。這可能是一個好習慣(如果您絕對需要強制評估IEnumerable,並確保提出這個問題)才能使用.ToList()。還有.ToArray()