我正在Rhino Grasshopper中编写一个C#组件。我想确定列表constraints
是否包含列表nodes
中的Point3d对象。如果是,则与b
中的条目对应的返回列表nodes
中的条目应为true
,否则为false
。要确定对象是否相同,请使用比较容差tol
。
例如,让nodes = {A, B, C, D, E, F}
和constraints = {a, f}
成为Point3d对象的列表。由于A
和a
之间的距离以及F
和f
之间的距离等于或小于tol
:
A.DistanceTo(a) <= tol // True
我们会以b = {true, false, false, false, true}
作为回报。
我想我可以用某种方式使用LINQ找到b
。
答案 0 :(得分:5)
你似乎需要LINQ Select
:
var result = nodes.Select(n => constraints.Any(c => n.DistanceTo(c) <= tol));
答案 1 :(得分:1)
你的意思是这样的:
var b = from node in nodes
let bs = constraints.Any(t => node.DistanceTo(t) <= tol)
select bs;