这在 Linq 中会是什么样子?

发布于 2024-10-31 22:15:59 字数 328 浏览 0 评论 0原文

大家好,我正在尝试更清楚地了解 LINQ。我有一组 foreach 循环,用于循环遍历 ID 列表,然后将其与对象 ID 列表进行比较,然后将它们添加到保存结果或比较的第三个列表中。我想知道这段代码在 LINQ 中会是什么样子 列表1-> int Id 列表 列表2->对象列表


foreach (var mId in list1)
{
   foreach (var m in list2)
   {
      if (m.Obj.Id== mId)
      {
        result.Add(m);
        break;
      }
   }
}

Hey everyone I'm trying to get a clearer understanding of LINQ. I have a set of foreach loops that I use to loop through a list of IDs that I then compare to a list of object IDs and then add them to a 3rd list that holds the result or the comparing. I was wondering what this bit of code would look like in LINQ
list1 -> List of int Ids
list2 -> List of Objects


foreach (var mId in list1)
{
   foreach (var m in list2)
   {
      if (m.Obj.Id== mId)
      {
        result.Add(m);
        break;
      }
   }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

生生不灭 2024-11-07 22:15:59

基本上,这就是执行连接的循环逻辑。使用查询语法(更具可读性)你可以这样做:

var result = from mId in list1
             join m in list2 on m.Obj.Id equals mId
             select m;

或者,如果 lambda 是你的菜:

var result = list1.Join(list2, 
                        mId => mId, 
                        m => m.Obj.Id,
                        (mId, m) => m);

Basically, that is the loop logic to perform a join. Using query syntax (which is more readable) you could do:

var result = from mId in list1
             join m in list2 on m.Obj.Id equals mId
             select m;

Or, if lambda's are your thing:

var result = list1.Join(list2, 
                        mId => mId, 
                        m => m.Obj.Id,
                        (mId, m) => m);
鯉魚旗 2024-11-07 22:15:59

它看起来像这样:

var result = list2.Where(i => list1.Contains(i.Obj.Id));

It would look something like this:

var result = list2.Where(i => list1.Contains(i.Obj.Id));
沧笙踏歌 2024-11-07 22:15:59
var query = list1.Join(list2, x => x, x => x.Obj.Id, (outer, inner) => inner);
var query = list1.Join(list2, x => x, x => x.Obj.Id, (outer, inner) => inner);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文