在Linq中会是什么样子呢?

  • 本文关键字:什么样 Linq c# linq
  • 更新时间 :
  • 英文 :


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


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

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

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);

看起来像这样:

var result = list2.Where(i => list1.Contains(i.Obj.Id));
var query = list1.Join(list2, x => x, x => x.Obj.Id, (outer, inner) => inner);

相关内容

  • 没有找到相关文章

最新更新