linq加入1对多获得第一记录 [英] linq join 1 to many get first record

查看:201
本文介绍了linq加入1对多获得第一记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有2个列表:

列表1:

ID 1个 2个 3

ID 1 2 3

列表2:

ID名称

1杰森 1吉姆 2迈克 3菲尔

1 Jason 1 Jim 2 Mike 3 Phil

我喜欢将这两个都加入,但仅从list2获得给定ID的第一条记录: 最终结果将是

I like to join both of these but get only the first record from list2 for a given ID: The end result would be

ID名称 1杰森 2迈克 3菲尔

ID Name 1 Jason 2 Mike 3 Phil

我尝试了以下操作,但没有成功:

I tried the following but was not successful:

    var lst = (from lst1 in list1
               join lst2 in list2
               on lst1.ID equals lst2.ID).ToList().First();          

推荐答案

您可以使用 101个LINQ示例调用通过组联接进行交叉联接" .将其与First()结合使用,即可从组中仅获取一项.

You can get this result with what the 101 LINQ Samples calls "Cross Join with Group Join". Combine that with First() to get just one item from the group.

var lst = (
    from lst1 in list1
    join lst2 in list2 on lst1.ID equals lst2.ID into lstGroup
    select lstGroup.First()
);

示例: http://ideone.com/V0sRO

这篇关于linq加入1对多获得第一记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆