Que puis-je utiliser à la place d'un « long » qui pourrait être cloneable?
-
27-09-2019 - |
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;
}
}
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