我是在c#中创建动态词典的新手。在线的大多数例子都是使用Dictionary <string,object>
。
在我想要将.csv文件解析为动态字典,并以行号作为键之后,如何创建一个整数作为键(Dictionary <int, object>
)?
这是我的代码:
public class DynamicDictionary<TValue> : DynamicObject, IEnumerable
{
private Dictionary<int, TValue> _dictionary;
public DynamicDictionary()
{
_dictionary = new Dictionary<int, TValue>();
}
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
TValue data;
int rowNum = Convert.ToInt32(binder.Name);
if (!_dictionary.TryGetValue(rowNum, out data))
{
throw new KeyNotFoundException("There is no key by that row number");
}
result = data;
return true;
}
public override bool TrySetMember(SetMemberBinder binder, object value)
{
int rowNum = Convert.ToInt32(binder.Name);
if (_dictionary.ContainsKey(rowNum))
{
_dictionary[rowNum] = (TValue)value;
}
else
{
_dictionary.Add(rowNum, (TValue)value);
}
return true;
}
public IEnumerator GetEnumerator()
{
return _dictionary.GetEnumerator();
}
}
如何设置和获取此词典中的值?
因为这段代码错了: myDict.1,myDict.2等。
我做错了什么?