System.Collections.Generic.Dictionary<TKey,TValue>

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了System.Collections.Generic.Dictionary<TKey,TValue>相关的知识,希望对你有一定的参考价值。

我想要通过2个值去查询对应的数据,在读的时候要怎么写,(单个读取自字段有重复)代码如下:
while (reader.Read())

AnalysiseRewardRankStat analysiseRewardRankStat = new AnalysiseRewardRankStat();//这里要怎么改,读2个参数
analysiseRewardRankStat.xb = CastDBValue.ToRequired<String>(reader, "xb");
analysiseRewardRankStat.sxxq = CastDBValue.ToRequired<String>(reader, "sxxq");
analysiseRewardRankStat.qymc = CastDBValue.ToRequired<String>(reader, "qymc");
analysiseRewardRankStat.qylx = CastDBValue.ToRequired<String>(reader, "qylx");
analysiseRewardRankStat.sshy = CastDBValue.ToRequired<String>(reader, "sshy");
analysiseRewardRankStat.dz = CastDBValue.ToRequired<String>(reader, "dz");
analysiseRewardRankStat.pjxc = CastDBValue.ToRequired<Decimal>(reader, "pjxc");

//TODO Choose the appropriate entity property to use as the key to the dictionary
analysiseRewardRankStatSet.Add(analysiseRewardRankStat.xb,analysiseRewardRankStat);//?这里里面写2个值 怎么弄


reader.Close();
不好意思, AnalysiseRewardRankStat analysiseRewardRankStat = new AnalysiseRewardRankStat();//这里要怎么改,读2个参数 这句话没有问题 打错
Dictionary<String, AnalysiseRewardRankStat> analysiseRewardRankStatSet = new Dictionary<String,AnalysiseRewardRankStat>();//这怎么改

while (reader.Read())
这While上面的这句话 怎么改

就是说 通过2个字段来确定数据,单个字段会有重复值

你可以试试Dictionary<string[], AnalysiseRewardRankStat>

用一个数组来表示键,这样就可以用两个字符串来确定唯一键,而键值是可以重复的
在添加的时候
analysiseRewardRankStatSet.Add(new string[]str1,str2, AnalysiseRewardRankStat);
——————————————————————————————————
对啊,Dictionary里面只能有两个参数,所以用一个字符串数组来做为第一个参数,这个数组你就可以用两个字段来填充,两个字段组成唯一的数组,那么也就可以确定对应的值了
参考技术A 没怎么看明白,你的意思是说directionary<T,V>本身是用一个值去查另一个值,而你是要用两个值去查一个吗?
按我的理解:用自定义数据类型做为T.你定义一个STRUCT结构,里面顺序存你做查询用的两个值,如果这两个值是同类型的记得要排下序,不然顺序反了会查不到.然后你定义成Directory<yourstruct,Tvalue>,这样就可以用两个值去查了.
参考技术B 可以试试Dictionary<object[], AnalysiseRewardRankStat>

以上是关于System.Collections.Generic.Dictionary<TKey,TValue>的主要内容,如果未能解决你的问题,请参考以下文章