使用LINQ比较C#中的List

seh*_*rom 0 c# linq grasshopper

我正在Rhino Grasshopper中编写一个C#组件.我想确定List是否constraints包含List 中的Point3d对象nodes.如果是这样,则返回列表中b与条目对应的条目nodes应该是true,否则false.要确定对象是否相同,请使用比较容差tol.

作为一个例子,让nodes = {A, B, C, D, E, F}constraints = {a, f}是三维点对象的列表.因为之间的距离Aa与,Ff等于或小于tol:

A.DistanceTo(a) <= tol  // True
Run Code Online (Sandbox Code Playgroud)

我们将得到b = {true, false, false, false, true}回报.

我想我可以找到b以某种方式使用LINQ.

cuo*_*gle 5

看来你需要LINQ Select:

var result = nodes.Select(n => constraints.Any(c => n.DistanceTo(c) <= tol));
Run Code Online (Sandbox Code Playgroud)