我希望通过其中列出的唯一标识符键加入两个IList<int[]>
,并将它们连接成一个新标识符。当我们JOIN
SQL服务器中的两个表时,它完全相同,但想知道是否可以在c#中轻松完成它?
代码与此类似:
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}>
答案 0 :(得分: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();
此函数还将内外连接作为其参数名称。某些项目可能会丢失,因为它无法找到它的对