Cosa posso usare al posto di un “lungo” che potrebbe essere clonabile?
-
27-09-2019 - |
Domanda
Cosa posso usare al posto di un "lungo" che potrebbe essere clonabile?
vedi sotto per il codice per il quale sto ottenendo un errore qui finché non è clonabile.
public static CloneableDictionary<string, long> returnValues = new CloneableDictionary<string, long>();
EDIT:. Ho dimenticato di dire Mi mancava di utilizzare il seguente codice che ho trovato (vedi sotto)
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;
}
}
Soluzione
Non v'è alcun punto nella clonazione di un long
.
Si dovrebbe usare un Dictionary<string, long>
normale.
Se si desidera clonare il dizionario in se, è possibile scrivere new Dictionary<string, long>(otherDictionary)
.
Altri suggerimenti
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;
}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow