2017-12-27 2 views
0

Ich möchte zwei IList<int[]> durch den dort aufgeführten eindeutigen Bezeichner-Schlüssel verbinden und verketten sie zu einem neuen. Es ist genau das gleiche, wenn wir zwei Tabellen in SQL Server JOIN, aber fragen, ob es möglich ist, es leicht in C# zu tun?Gibt es eine einfache Möglichkeit, zwei ILists mit gemeinsamen Schlüssel zu verbinden

-Code ist ähnlich wie diese:

int[] a1 = {1,10}; int[] a2 = {2,20}; int[] a3 = {3,30}; 
int[] b1 = {1,-1}; int[] b2 = {2,-2}; int[] b3 = {3,-3}; 

IList<int[]> List1 = new List<int[]>(); 
IList<int[]> List2 = new List<int[]>(); 

List1.Add(a1);List1.Add(a2);List1.Add(a3); 
List2.Add(b1);List2.Add(b2);List2.Add(b3); 

IList<int[]> ListFinal = new List<int[]>(); 
// I want to the ListFinal be <{1,10,-1},{2,20,-2},{3,30,-3}> 

Antwort

4
using System.Linq; 

var ListFinal = List1.Join(List2, 
     (inner) => inner[0], // return key of each item in list1 
     (outer) => outer[0], // return key of each item in list2 to be matched 
     (inner,outer) => new[]{ inner[0],inner[1],outer[1] } 
    ).ToList(); 

Auch diese Funktion machen Innen-Außen-Join als Parameternamen angegeben. Einige Artikel fehlen möglicherweise, weil sie das Paar

nicht finden können
Verwandte Themen