我可以使用什么代替可以克隆的“长”?
请参阅下面我在此处收到错误的代码,因为长期不可克隆。
public static CloneableDictionary<string, long> returnValues = new CloneableDictionary<string, long>();
编辑:我忘了提到我想使用我找到的以下代码(见下文)。
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;
}
}
答案 0 :(得分:6)
克隆long
毫无意义。
您应该使用常规Dictionary<string, long>
。
如果要克隆字典本身,可以编写new Dictionary<string, long>(otherDictionary)
。
答案 1 :(得分:1)
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;
}
}