是否有更快的方法根据像向量的距离这样的函数填充列表?
users_rights[14][22] = true;
users_rights[14][45] = false;
答案 0 :(得分:2)
您可以使用Parallel.ForEach:
ConcurrentBag<Vector2> optionList = new ConcurrentBag<Vector2>();
Parallel.ForEach(specialBuildings, (item) => { optionList.Add(Vector2.Distance(item, house)); });
列表不是线程安全的,因此您需要使用Thread-Safe Collections之一。上面的例子使用了ConcurrentBag,但还有其他的。
答案 1 :(得分:1)
您可以尝试实施 PLinq ( Parallel Linq):
List<float> optionList = specialBuildings
.AsParallel()
.Select(item => Vector2.Distance(item, house))
.ToList();
答案 2 :(得分:0)
代码可能运行得不快,但您可以在一行中执行:
return specialBuildings.Select(item => Vector2.Distance(item, house)).ToList()