下面的示例代码会做你想要什么:
public class InfoTable
{
Dictionary<string, int> _collection;
public InfoTable()
{
_collection = new Dictionary<string,int>();
}
public int this[string col,string row] {
get
{
string colrow = col+"_"+row;
if (_collection.ContainsKey(colrow))
return _collection[colrow];
_collection.Add(colrow, 0);
return 0;
}
set
{
string colrow = col + "_" + row;
if (_collection.ContainsKey(colrow))
_collection[colrow] = value;
else
_collection.Add(colrow, value);
}
}
}
,这里是你如何使用它:
InfoTable it = new InfoTable();
it["mike", "friday"] = 1;
it["mike", "friday"]++;
int val = it["mike", "friday"];
对于第二个选项'Tuple <字符串,字符串>'和字典键一样好。 – 2011-06-13 22:35:38
@Rick,Tuple可以工作,但我会建议创建一个自定义类型,因为它允许您为键提供有意义的名称。 – 2011-06-14 00:58:26
如果使用包装类型来实现一个友好的双参数索引器,如OP所暗示的那样,那么只有大约三行的实现代码将引用“Tuple”。 – 2011-06-14 01:16:05