在一个c#项目中,我有两个集合,我试图使用lambda查询它们以返回值

伪代码


  收藏1
  
  alertID
  SavedItemID
  保存名称
  
  收藏2
  
  SavedItemID
  alertID
  AlertType
      创建日期


var name = Collection2.where(c => c.savedItemID == Collection1.SavedItemID) return SavedName Property value from collection 1.


基本上在初始查询中,我要点击collection2,我想从collection2导航到集合1中,以返回Saved Name字段。我从未尝试过在树上导航以检索另一个对象。谁能提供一些有关如何构建此表达式的建议?

谢谢

最佳答案

您需要使用Join,然后使用projectanonymous type,其中包括您关心的字段。

var result = from c2 in Collection2
    join c1 in Collection1 on c2.SavedItemID equals c1.SavedItemID
    select new { c2.SavedItemID, c1.SavedName };


这相当于

var result = Collection2.Join(
    Collection1,
    c2 => c2.SavedItemId,
    c1 => c1.SavedItemId,
        (c2, c1) => new { c2.SavedItemID, c1.SavedName });

10-06 02:05