日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

java dictionary遍历_C# Dictionary 的几种遍历方法

發布時間:2024/9/30 C# 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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;

}

總結

以上是生活随笔為你收集整理的java dictionary遍历_C# Dictionary 的几种遍历方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。