2010-12-16 13 views
2
Class sam 
{ 
    public void m1() 
    { 
     List<int> A = new List<int>() {1,2,3}; 
     List<int> B = new List<int>() {4,5,6}; 

     for (int i = 0; i < A.count; i++) 
     { 
      c.add(m2(A[i], B[i])); 
     } 
    } 

    public int M2(int a, int b) 
    { 
     return a + b; 
    } 
} 

In diesem Programm retrive ich aus zwei Listen und übergeben Sie Argumente. Ich nenne wie die Methode m2 in linQWie Join zwei Listen ohne gleiche Felder mit Linq?

+1

'c' wurde nicht deklariert. – Ani

Antwort

4

Es ist unklar, von der Frage, aber vielleicht meinen Sie:

var C = A.Zip(B, (a, b) => a + b) 
     .ToList(); 

Wenn Sie die Ergänzung zu Ihrem M2 Methode zu übergeben möchten, können Sie tun:

// C# 4 
var C = A.Zip(B, M2); 

// C# 3 (not likely since Zip was introduced in .NET 4) 
var C = A.Zip(B, (a, b) => M2(a, b)); 
var C = A.Zip<int, int, int>(B, M2); 
+0

Ich mag es erreichen durch Methodenruf nur nicht direkt – ratty

+1

@ratty: Das ist überhaupt nicht klar. Vielleicht könnten Sie uns eine Beispieleingabe/-ausgabe geben? Oder etwas, das sich zusammensetzt. – Ani

+1

@ratty: Ersetzen Sie dann das Lambda durch die Methode: 'A.Zip (B, M2)' – VVS