2013-04-26 2 views
0

모든 요소에 스칼라를 곱한 주어진 목록의 복사 된 버전을 반환하고 싶습니다.복사 및 곱한 목록 반환

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

VoltsPerDivX1 유형 List<double>의 기존 목록입니다. 그게 옳은가요, 아니면 더 좋은 것이 있습니까?

답변

5

이 약간 더 관용적이다 : 당신의 Select(...) 호출이 익명 형식을 방출하는 경우

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

또한 잘 작동합니다. 귀하의 예제에서는 생성자 호출에 대한 목록 유형을 표현할 수 있어야합니다.

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

유형이 익명이기 때문에 목록의 매개 변수 유형을 표현할 수 없습니다. 아마도 좋은 습관 일 것입니다 (IEnumerable의 평가를 절대적으로 받아야하고 그 질문을하게 될 경우) .ToList()을 사용하십시오. .ToArray()도 있습니다.