Was kann ich anstelle eines „langen“ verwenden, die klonbar sein könnte?
-
27-09-2019 - |
Frage
Was kann ich anstelle eines „long“, die klonbar sein könnte?
Siehe unten, um den Code für die ich hier so lange erhalte eine Fehlermeldung ist nicht klonbar.
public static CloneableDictionary<string, long> returnValues = new CloneableDictionary<string, long>();
EDIT:. Ich vergaß zu erwähnen, ich will den folgenden Code verwenden, dass ich gefunden (siehe unten)
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;
}
}
Lösung
Es gibt keinen Punkt ein long
in klonen.
Sie sollten eine regelmäßige Dictionary<string, long>
verwenden.
Wenn Sie das Wörterbuch selbst klonen möchten, können Sie new Dictionary<string, long>(otherDictionary)
schreiben.
Andere Tipps
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;
}
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow