欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 编程语言 > c# >内容正文

c#

java dictionary遍历-凯发ag旗舰厅登录网址下载

发布时间:2024/9/30 c# 29 豆豆
凯发ag旗舰厅登录网址下载 收集整理的这篇文章主要介绍了 java dictionary遍历_c# dictionary 的几种遍历方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

网上看到的,记录下来,供参考,备忘

dictionary list = new dictionary();

list.add("d", 1);//3.0以上版本

foreach (var item inlist)

{

console.writeline(item.key item.value);

}//keyvaluepair

foreach (keyvaluepair kv inlist)

{

console.writeline(kv.key kv.value);

}//通过键的集合取

foreach (string key inlist.keys)

{

console.writeline(key list[key]);

}//直接取值

foreach (int val inlist.values)

{

console.writeline(val);

}//非要采用for的方法也可

list test = new list(list.keys);for (int i = 0; i < list.count; i )

{

console.writeline(test[i] list[test[i]]);

}

dictionary( tkey , tvalue )

表示键和值的集合。

dictionary( tkey, tvalue) 泛型类提供了从一组键到一组值的映射。字典中的每个添加项都由一个值及其相关联的键组成。通过键来检索值的速度是非常快的,接近于 o(1),这是因为 dictionary( tkey, tvalue) 类是作为一个哈希表来实现的。(检索速度取决于为 tkey 指定的类型的哈希算法的质量。)

只要对象用作 dictionary( tkey, tvalue) 中的键,它就不能以任何影响其哈希值的方式更改。使用字典的相等比较器比较时,dictionary( tkey, tvalue) 中的任何键都必须是唯一的。键不能为 null 。 但是如果值类型 tvalue 为引用类型,该值则可以为空。

dictionary( tkey, tvalue) 需要一个相等实现来确定键是否相等。可以使用一个接受 comparer 参数的构造函数来指定 iequalitycomparer( t) )泛型接口的实现;如果不指定实现,则使用默认的泛型相等比较器 equalitycomparer( t) ) . default 。如果类型 tkey 实现 system. iequatable ) > )泛型接口,则默认相等比较器会使用该实现。

dictionary( tkey, tvalue) 的容量是 dictionary( tkey, tvalue) 可以包含的元素数。当向 dictionary( tkey, tvalue) 中添加元素时,将通过重新分配内部数组来根据需要自动增大容量。

对于枚举而言,字典中的每一项都被视为一个表示值及其键的 keyvaluepair( tkey, tvalue)结构进行处理。项返回的顺序未定义。

c# 语言的 foreach 语句(在 c 中为 for each ,在 visual basic 中为 for each )需要集合中每个元素的类型。由于 dictionary( tkey, tvalue) 是键和值的集合,因此元素类型并非键类型或值类型。相反,元素类型是键类型和值类型的 keyvaluepair( tkey, tvalue)。例如:

此类型的公共静态(在 visual basic 中为 shared )成员是线程安全的。但不能保证任何实例成员是线程安全的。

只要不修改该集合,dictionary( tkey, tvalue) 就可以同时支持多个阅读器。即便如此,从头到尾对一个集合进行枚举本质上并不是一个线程安全的过程。当出现枚举与写访问互相争用这种极少发生的情况时,必须在整个枚举过程中锁定集合。若要允许多个线程访问集合以进行读写操作,则必须实现自己的同步。

///summary ///通过dictionaryk,v传递参数 summary ///paramname=sql/param ///paramname=parms/param ///returns/returns public static sqldatareaderexecutereader( string sql,dictionary string , string parms) { sqldatareadersqlreader= null ;

///

///通过dictionary传递参数///

///

///

///

public static sqldatareader executereader(string sql, dictionaryparms)

{

sqldatareader sqlreader= null;

sqlconnection sqlconn= newsqlconnection(constr);

sqlcommand sqlcmd= newsqlcommand(sql, sqlconn);foreach (string key inparms.keys)

{

sqlcmd.parameters.add("@" key, parms[key]);

}

sqlconn.open();

sqlreader=sqlcmd.executereader(commandbehavior.closeconnection);returnsqlreader;

}

调用如下:=============

public userrole getrolebyid(introleid)

{string sql = string.format("select id roleid,rolename from userrole where id=@id",roleid);

dictionary sqlparams = new dictionary();

sqlparams.add("id",roleid.tostring());

userrole ur=null;using (sqldatareader sqlreader =dbhelper.executereader(sql,sqlparams))

{while(sqlreader.read())

{

ur= new userrole((int)sqlreader["roleid"], sqlreader["rolename"].tostring());

}

sqlreader.close();

}returnur;

}

总结

以上是凯发ag旗舰厅登录网址下载为你收集整理的java dictionary遍历_c# dictionary 的几种遍历方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图