聚集:具有空值的种子

时间:2018-06-20 15:40:55

标签: c# aggregate

我试图找到一些项目,然后通过矢量距离获得最接近的项目。有时FindAll不会返回导致Aggregate失败的元素。我可以检查一下列表中是否确实包含某些内容,但是我可以通过某种方式为Aggregate注入null这样的值吗?我尝试使用null,但出现此错误:

  

不能从用法中推断出方法'Enumerable.Aggregate(IEnumerable,TAccumulate,Func)'的类型参数。尝试显式指定类型参数。

有没有一种方法可以运行聚合,使其返回AIBrainnull

public AIBrain Closest(AIAttack attack = null) {
  if (others.Count == 0) return null;
  return others
    .FindAll(item => attack != null ? attack.IsAttackable(item) : true)
    .Aggregate(null, (curr, item) => {
      float currDistance = Vector3.Distance(transform.position, curr.transform.position);
      float itemDistance = Vector3.Distance(transform.position, item.transform.position);
      return itemDistance < currDistance ? item : curr;
    });
}

0 个答案:

没有答案