gpt4 book ai didi

c# - 如何交叉两个不同的 IEnumerable 集合

转载 作者:太空狗 更新时间:2023-10-29 20:44:53 25 4
gpt4 key购买 nike

我想这个问题以前有人问过,但我无法推断出明确的答案。我试图找到最好的方式(或方式)来交叉两个完全不同的 ienumerable 集合。

A 类:

  • int z1
  • int z2
  • int z3
  • 字符串 z4

B 类:

  • int j5
  • int j6
  • Tj7
  • Tj8
  • 字符串j9

..我想相交List<A>List<B>z2 == j6 .

这可以做到吗?

最佳答案

这个问题真的没有意义 - 结果类型是什么?必须对相同类型的两个序列执行交集。听起来您不太想要两个集合之间的交集,而是基于 z2 的可能值过滤第一个序列。例如:

HashSet<int> validZ2 = new HashSet<int>(listB.Select(x => x.j6));
var filtered = listA.Where(x => validZ2.Contains(x.z2));

或者可能如 Gabe 所建议的那样,您想要一个连接。例如:

var query = from a in listA
join b in listB on a.z2 equals b.j6
select new { a, b };

这将为您提供在 z2/j6 上匹配的两个列表中的所有值对。

关于c# - 如何交叉两个不同的 IEnumerable 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5468710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com