在列表中获取最小值和最大值

我在SetValues列表中添加了两个变量。变量是位置和值。现在,我要在列表中检查什么是最大值和什么是最小值(仅适用于“值”)。现在,当我执行以下操作时:

[Serializable]
    public struct SetValues {
        public float Position;
        public float Value;
    }

    public List<SetValues> setValues;

void Start () {
        Debug.Log (setValues.Value.Min ());
    }

它说:“不包含'Value'的定义,找不到可以接受的扩展方法'Value',它接受类型的第一个参数。” 我要使用List的唯一原因是避免使用数组时应进行的迭代。但是我在这里做什么错?

史蒂夫

您可以随意使用Linq名称空间中提供的IEnumerable扩展。这只是min的简单代码行,max的另一行代码

var minV = setValues.Min(x => x.Value);
var maxV = setValues.Max(x => x.Value);

但是,您无法避免在列表上进行迭代。“最小”和“最大”扩展包含一个隐藏的循环,该循环查找请求的值。

您的代码无法正常工作,因为setValuesSetValues对象的列表只是大小写不同,这使我们感到困惑,但是对于抱怨它的编译器来说,这是一个明显的错误。我建议为该类找到一个不同的名称,或者为列表变量找到一个不同的名称

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章