假设我们有两个集合:
List<double> values
List<SomePoint> points
哪里SomePoint是一个包含点的三个坐标的类型:
SomePoint
{
double X;
double Y;
double Z;
}
现在,我想执行这两个集合之间的交集,以找出 points 中的哪些点z坐标等于 values 的元素之一
我创建了类似的东西:
HashSet<double> hash = new HashSet<double>(points.Select(p=>p.Z));
hash.IntersectWith(values);
var result = new List<SomePoints>();
foreach(var h in hash)
result.Add(points.Find(p => p.Z == h));
但它不会返回这些具有相同 Z 的点值,但不同X和 Y .有没有更好的方法呢?
请您参考如下方法:
你能不能不做
var query = (from d in values
join p in points
on d equals p.Z
select p).ToList();
?
