¿C#Diccionario de copia superficial?
dictionary shallow-copy (2)
Esta es una forma genérica que encontré donde no tiene que escribir explícitamente ningún tipo, que prefiero por razones de mantenimiento:
var ShallowCopy = OriginalDictionary.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
Necesito copiar un diccionario en c #.
Por ejemplo:
Dictionary<int,int> flags = new Dictionary<int,int>();
flags[1] = 2;
flags[2] = 3;
flags[0] = 9001;
Dictionary<int,int> flagsn = flags.MemberwiseClone();
Desafortunadamente, eso devuelve el error: "error CS1540: no se puede acceder al objeto miembro protegido.MemberwiseClone object.MemberwiseClone()'' via a qualifier of type
System.Collections.Generic.Dictionary''. El calificador debe ser del tipo` PointFlagger ''o derivado de él "
No estoy completamente seguro de lo que esto significa ... ¿Hay alguna otra forma de copiar un diccionario / corregir mi código anterior?
Para obtener una copia superficial, solo use el constructor de Dictionary<TKey, TValue>
ya que toma un IEnumerable<KeyValuePair<TKey, TValue>>
. Agregará esta colección a la nueva instancia.
Dictionary<int, int> flagsn = new Dictionary<int, int>(flags);