c#访问二维数组的哈希表
我已经在c#中创建了一个二维数组哈希表,无法确定如何直接访问数组值,以下是我当前的代码:c#访问二维数组的哈希表,c#,C#,我已经在c#中创建了一个二维数组哈希表,无法确定如何直接访问数组值,以下是我当前的代码: // create the hashtable Hashtable hashLocOne = new Hashtable(); // add to the hashtable if we don't yet have this location if (!hashLocOne.ContainsKey(strCurrentLocationId)) hashLocOne.Add(strCurrentLoc
// create the hashtable
Hashtable hashLocOne = new Hashtable();
// add to the hashtable if we don't yet have this location
if (!hashLocOne.ContainsKey(strCurrentLocationId))
hashLocOne.Add(strCurrentLocationId,new double[20, 2] { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } });
// add to the value at a given array position, this does not work
hashLocAll[strReportLocationId][iPNLLine, 0] += pnl_value;
你为什么不用字典
为什么不使用字典?哈希表不知道其中存储了什么类型的对象;您必须手动强制转换每一个:
double result = ((double[,]) table["foo"])[4][5];
如果可能,您应该使用字典而不是哈希表:
var dict = new Dictionary<String, double[,]>();
double result = dict["foo"][4][5];
var dict=newdictionary();
双结果=dict[“foo”][4][5];
哈希表不知道存储了什么类型的对象;您必须手动强制转换每一个:
double result = ((double[,]) table["foo"])[4][5];
如果可能,您应该使用字典而不是哈希表:
var dict = new Dictionary<String, double[,]>();
double result = dict["foo"][4][5];
var dict=newdictionary();
双结果=dict[“foo”][4][5];
- 我在示例代码中没有看到任何关于
或hashLocAll
的定义strReportLocationId
- 您正在使用非通用词典。改用通用词典
- 您使用的是一种非标准化的匈牙利符号。不要那样做。去掉前缀
、hash
、str
等。它们在C#这样的语言中是完全不必要的,只会使代码更难阅读i
- 我在示例代码中没有看到任何关于
或hashLocAll
的定义strReportLocationId
- 您正在使用非通用词典。改用通用词典
- 您使用的是一种非标准化的匈牙利符号。不要那样做。去掉前缀
、hash
、str
等。它们在C#这样的语言中是完全不必要的,只会使代码更难阅读i
- 所以,您有一个哈希表。你现在想要得到这些信息
看起来hashLocAll应该是hashLocOne。不过,我猜你是有原因的
对于哈希表,其中的所有内容都是“object”类型。这意味着你必须做大量的铸造
试试这个:
((double[,])hashLocOne[strReportLocationId])[iPNLLine, 0] += pnl_value;
因此,您有一个哈希表。你现在想要得到这些信息
看起来hashLocAll应该是hashLocOne。不过,我猜你是有原因的
对于哈希表,其中的所有内容都是“object”类型。这意味着你必须做大量的铸造
试试这个:
((double[,])hashLocOne[strReportLocationId])[iPNLLine, 0] += pnl_value;
这确实无助于回答问题,你的最后两点让我希望你能删除“主观和辩论”的答案。这确实无助于回答问题,你的最后两点让我希望你能删除“主观和辩论”的答案。