Tengo que actualizar un valor en la colección IEnumerable. Debido a que es de solo lectura, ¿cuál es el truco para actualizar los valores?
product.Variants es un IEnumerable y quiero actualizar algo como esto
producto.Variantes[0].Barcode ="algo"
actual me sale un error como este
luego paso la variable del producto a una función y eso procesa algo en el producto. Variantes
someFunction (producto) // esta función debe tener el nuevo código de barras actualizado arriba.
La documentación del error CS0021 dice:
Se intentó acceder a un valor a través de un indexador en un tipo de datos que no admite indexadores.
Simple como eso. Un IEnumerable solo expone el enumerador, no los datos subyacentes. Si desea acceder a esos datos, debe "materializar" el IEnumerable en una colección de sus datos.
var list = product.Variants.ToList(); if(list.Count > 0) { ProductVariant pv = list[0]; .... }pero esto "materializa" toda la lista y si solo necesita el primer elemento, probablemente pueda usar la extensión IEnumerable FirstOrDefault;
var pv = product.Variants.FirstOrDefault(); if(pv != null) { ..... }