Question

Que puis-je utiliser à la place d'un "long" qui pourrait être cloneable?

Référencez ci-dessous pour le code pour lequel je reçois une erreur ici aussi longtemps est pas cloneable.

public static CloneableDictionary<string, long> returnValues = new CloneableDictionary<string, long>();

EDIT:. J'ai oublié de mentionner que je voulais utiliser le code suivant que j'ai trouvé (voir ci-dessous)

public class CloneableDictionary<TKey, TValue> : Dictionary<TKey, TValue> where TValue : ICloneable
{
    public IDictionary<TKey, TValue> Clone()
    {
        var clone = new CloneableDictionary<TKey, TValue>();

        foreach (KeyValuePair<TKey, TValue> pair in this)
        {
            clone.Add(pair.Key, (TValue)pair.Value.Clone());
        }
        return clone;
    }
}
Était-ce utile?

La solution

Il n'y a pas de point dans le clonage d'un long.

Vous devriez utiliser un Dictionary<string, long> régulier.

Si vous voulez cloner le dictionnaire lui-même, vous pouvez écrire new Dictionary<string, long>(otherDictionary).

Autres conseils

public class CloneableDictionary<TKey, TValue> : Dictionary<TKey, TValue>
{
    public IDictionary<TKey, TValue> Clone()
    {
        var clone = new CloneableDictionary<TKey, TValue>();

        foreach (KeyValuePair<TKey, TValue> pair in this)
        {
            ICloneable clonableValue = pair.Value as ICloneable;
            if (clonableValue != null)
                clone.Add(pair.Key, (TValue)clonableValue.Clone());
            else
                clone.Add(pair.Key, pair.Value);
        }

        return clone;
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top