c# dictionary string string
场景:C# Dictionary<string,object>遇到的有关问题
求助:C# Dictionary<string,object>遇到的问题。
异常描述:
System.ArgumentNullException: Value cannot be null.
Parameter name: key
at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
at System.Collections.Generic.Dictionary`2.ContainsKey(TKey key)
测试代码:
我想问一下:什么情况下,Dictionary<string,object>中,的Keys的元素,中,会有子元素,有可能为:null的情况?
而这个Keys是只读的属性。
------解决方案--------------------
foreach (string key in keys)
{
lock (sourceASO)
{
string strKey=key;
if (strKey==null)
{ strKey="";
}
if (sourceASO.ContainsKey(strKey))//这里出异常,说key==null
{
desASO[strKey] = sourceASO[strKey];
}
}
}
求助:C# Dictionary<string,object>遇到的问题。
异常描述:
System.ArgumentNullException: Value cannot be null.
Parameter name: key
at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
at System.Collections.Generic.Dictionary`2.ContainsKey(TKey key)
- C# code
public static void CloneKeyTo(ASObject sourceASO, out ASObject desASO) { desASO = new ASObject(); string[] keys; lock (sourceASO.Keys) { keys = sourceASO.Keys.ToArray(); } foreach (string key in keys) { lock (sourceASO) { if (sourceASO.ContainsKey(key))//这里出异常,说key==null { desASO[key] = sourceASO[key]; } } } }
测试代码:
- C# code
Dictionary<string,object> demoObj = new Dictionary<string,object>(); demoObj[null]=1;//这是更加不可能的,直接异常。
我想问一下:什么情况下,Dictionary<string,object>中,的Keys的元素,中,会有子元素,有可能为:null的情况?
而这个Keys是只读的属性。
------解决方案--------------------
foreach (string key in keys)
{
lock (sourceASO)
{
string strKey=key;
if (strKey==null)
{ strKey="";
}
if (sourceASO.ContainsKey(strKey))//这里出异常,说key==null
{
desASO[strKey] = sourceASO[strKey];
}
}
}