【问题标题】:Comapare Ienumerable<int> and List<Entity> and get matching ID's比较 Ienumerable<int> 和 List<Entity> 并获得匹配的 ID
【发布时间】:2013-11-14 10:19:17
【问题描述】:

我有来自 DB 的 Ienumerable&lt;int&gt; Temp1;

和其他具有 Id 和 name 属性的 List&lt;entity&gt; Temp2;

我想compare Temp1 &amp; Temp2(Id) 并找到匹配的值并将其放在列表中。

实现这一点的最佳方法是什么?

谢谢

【问题讨论】:

  • 最终名单中是否需要姓名和身份证?

标签: c# list comparison ienumerable


【解决方案1】:

使用SelectIntersect

var sameIds = Temp2.Select(x=>x.Id).Intersect(Temp1);

首先只选择新的 IEnumerable&lt;int&gt; 的 ID,然后将其与当前可用的 IEnumerable&lt;int&gt; 相交将为您提供匹配的 ID

【讨论】:

  • 结果将是 IEnumerable 类型?我认为他需要实体的集合?这是正确的
  • 从这里我可以得到我需要的任何东西。谢谢
  • @User3805967 "只有 ID 就可以了" :)
【解决方案2】:
var outp = (from temp1 in Temp1
            join temp2 in Temp2
            on temp1 equals temp2.Id
            select temp2).ToArray();

您也可以使用 Let 并使用 ==。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    相关资源
    最近更新 更多