2012-09-28 2 views
-8

[-1; 1] 범위의 값 목록을 정규화해야합니다. C#에서이 코드를 발견했지만이 언어를 모른다. 누군가 나를 C++로 번역하는 것을 도울 수 있습니까?lambda 표현식을 C#으로 번역하기

List<int> list = new List<int>{-5,-4,-3,-2,-1,0,1,2,3,4,5}; 
double scaleMin = -1; //the normalized minimum desired 
double scaleMax = 1; //the normalized maximum desired 

double valueMax = list.Max(); 
double valueMin = list.Min(); 
double valueRange = valueMax - valueMin; 
double scaleRange = scaleMax - scaleMin; 

IEnumerable<double> normalized = 
list.Select (i => 
    ((scaleRange * (i - valueMin)) 
     /valueRange) 
    + scaleMin); 

답변

4

코드 ...

IEnumerable<double> normalized = list.Select (i => ((scaleRange * (i - valueMin))/valueRange) + scaleMin); 

... ... 그래서 같은 람다 표현식없이 (C#으로) 다시 쓸 수있는 것은

IEnumerable<double> normalized = new List<double>(); 
for (var elem in list) 
{ 
    normalized.Add(((scaleRange * (elem - valueMin))/valueRange) + scaleMin); 
} 

당신은 할 수 있어야한다 알고리즘을 필요한 언어로 번역 할 수 있습니다.

+0

subs/var elem/var i/ –

+0

@ebyrob - Thx! 복사하여 붙여 넣기 오류가 수정되었습니다. –