c# example ¿Cómo modificar un valor KeyValuePair?




keyvaluepair c# ejemplos (3)

Tengo un problema cuando trato de modificar el valor de un elemento porque es solo un campo de solo lectura.

KeyValuePair<Tkey, Tvalue>

He probado diferentes alternativas como:

Dictionary<Tkey, Tvalue>

pero ahí tengo el mismo problema. ¿Hay alguna forma de establecer el campo de valor en un nuevo valor?


No puede modificarlo, puede reemplazarlo por uno nuevo.

var newEntry = new KeyValuePair<Tkey, Tvalue>(oldEntry.Key, newValue);

o para el diccionario:

dictionary[oldEntry.Key] = newValue;

KeyValuePair<TKey, TValue> es inmutable. Necesita crear uno nuevo con la clave o valor modificado. Lo que realmente haga a continuación depende de su escenario y de qué quiere hacer exactamente ...


Aquí, si quiere hacer que KeyValuePair sea mutable.

Haz una clase personalizada.

public class KeyVal<Key, Val>
{
    public Key Id { get; set; }
    public Val Text { get; set; }

    public KeyVal() { }

    public KeyVal(Key key, Val val)
    {
        this.Id = key;
        this.Text = val;
    }
}

para que podamos usarlo en cualquier lugar de KeyValuePair.





.net