Estoy agregando dos variables en mi lista SetValues. Las variables son Posición y Valor. Ahora quiero verificar en mi lista cuál es el valor máximo y cuál es el valor mínimo (solo para "Valor"). Ahora cuando hago lo siguiente:
[Serializable] public struct SetValues { public float Position; public float Value; } public List<SetValues> setValues; void Start () { Debug.Log (setValues.Value.Min ()); }Dice que "no contiene una definición para 'Valor' y no se pudo encontrar ningún método de extensión accesible 'Valor' que acepte un primer argumento de tipo". La única razón por la que quiero usar List es para evitar la iteración que se debe hacer cuando se usa una matriz. Pero, ¿cuál es el error que estoy haciendo aquí?
Tienes a tu disposición las extensiones IEnumerable proporcionadas en el espacio de nombres de Linq. Es solo una línea de código simple para min y otra para max
var minV = setValues.Min(x => x.Value); var maxV = setValues.Max(x => x.Value);Sin embargo, no puede evitar una iteración sobre la lista. Las extensiones Min y Max contienen un bucle oculto que busca el valor solicitado.
Su código no puede funcionar porque setValues es una lista de objetos SetValues . Nos confunde con solo una letra diferente por su caso pero es un claro error para el compilador que se queja de ello. Sugiero encontrar un nombre diferente para la clase o un nombre diferente para la variable de lista