2012-03-21 3 views
1

함수 c [i] = f (x [i], y [i])가 있다고 가정 해보십시오. 나는 입력 값 배열 x와 y의 길이가 같고 결국 배열 c의 값을 계산하려고합니다. LINQ를 사용하여 어떻게 얻을 수 있습니까? 예를 들어LINQ : 배열 요소가 인덱스로 일치하는 함수 계산

c = new double[x.Length]; 

for (int i = 0; i < x.Length; i++) 
{ 
    c[i] = f(x[i], y[i]); 
} 

답변

8

사용 Zip 방법 :

int[] x = { 1, 2, 3 }; 
int[] y = { 4, 5, 6 }; 

var result = x.Zip(y, (i, j) => i + j); 

또는 적절한 PARAMS와 이미 방법이있는 경우, 단순히 사용을 : 작성할 필요없이

var result = x.Zip(y, Function); 
// in this sample Function looks like: 
static int Function(int x, int y) 
{ 
    return x + y; 
} 
0

간단하게 사용할 수 있습니다 Select :

c가 대신 IEnumerable<int>int[] 수 끝에 ToArray를 추가 할 필요가있는 경우
var c = x.Select((x_i, i) => f(x_i, y[i])); 

: 계산

var c = x.Select((x_i, i) => f(x_i, y[i])).ToArray(); 
0

당신은 우편 방법을 사용할 수 있습니다

int[] a = { 4, 2, 3 }; 
int[] b = { 9, 1, 0 }; 
var result = a.Zip(b, (i, j) => i + j);