最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#如何對Dictionary遍歷賦值

 更新時間:2023年09月08日 16:40:29   作者:蛋疼的世界  
這篇文章主要介紹了C#如何對Dictionary遍歷賦值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

C#對Dictionary遍歷賦值

Dictionary<int, string> datatable = new Dictionary<int, string>();
datatable.Add(1, "hello1");
datatable.Add(2, "hello2");
int[] keys = datatable.Keys.ToArray();
for (int i = 0; i < keys.Length; i++)
{
    if (datatable[keys[i]] == "hello2")
    {
        datatable[keys[i]] = "hello";
    }
}

C#循環(huán)遍歷Dictionary,并且可以改變值

通常的C#循環(huán)遍歷是用foreach循環(huán)遍歷。好處就是簡單,但是缺點就是無法在循環(huán)中改變Dictionary的值。

Dictionary <string,int>

一下遍歷這個Dictionary。

代碼:

            for (int i = 0; i < HostMessage.Count; i++)
            {
                var item = HostMessage.ElementAt(i);
                Console.WriteLine("key is " + item.Key);
                Console.WriteLine("value is " + item.Value);
                if (item.Key == "MS01")
                {
                    HostMessage["MT01"] = 102;
                }
            }

默認HostMessage中有值。

這樣就可以了。

我這樣寫有個BUG,就是在終端輸出依舊是沒有改變值的,其實是改變了,是不過沒有及時輸出。要是用以下代碼就好了。

            for (int i = 0; i < HostMessage.Count; i++)
            {
                var item = HostMessage.ElementAt(i);
                Console.WriteLine("key is " + item.Key);
                Console.WriteLine("value is " + item.Value);
                if (item.Key == "MS01")
                {
                    HostMessage["MT01"] = 102;
                }
            }
            Console.WriteLine("*****************************8888");
            foreach (string key in HostMessage.Keys)
            {
                Console.WriteLine("Key = {0}, Value = {1}", key, HostMessage[key]);
            }

補充:

更新一個新用法

Dictionary<Dictionary<string, int>, string> zh = new Dictionary<Dictionary<string, int>, string>();

如何輸出這個字典?

直接上示例代碼

            Dictionary<Dictionary<string, int>, string> zh = new Dictionary<Dictionary<string, int>, string>();
            Dictionary<string, int> HostM = new Dictionary<string, int>();
            Dictionary<string, string> ss = new Dictionary<string, string>();
            HostM.Add("MT01", 101);           
            HostM.Add("MT09",100);
            HostM.Add("MT010", 101);
            HostM.Add("MT02", 100);
            HostM.Add("MT03", 101);
            HostM.Add("MT04", 100);
            HostM.Add("MT05", 101);
            HostM.Add("MT08", 100);
            HostM.Add("Ms01", 101);
            HostM.Add("Ms02", 100);
            HostM.Add("LD01", 101);
            HostM.Add("PS01", 100);
            ss.Add("MT01", "traytab");
            ss.Add("MT09", "solidifyOut");
            ss.Add("MT010", "solidifyIn");
            ss.Add("MT02", "WBIn");
            ss.Add("MT03", "WBOUt");
            ss.Add("MT04", "Finish");
            ss.Add("MT05", "are");
            ss.Add("MT08", "spc");
            ss.Add("Ms01", "LDmachine");
            ss.Add("Ms02", "qwe");
            ss.Add("LD01", "asc");
            ss.Add("PS01", "sdf");
            foreach (string key in HostM.Keys)
            {
                Dictionary<string, int> ac = new Dictionary<string, int>();
                ac.Add(key, HostM[key]);
                zh.Add(ac, ss[key]);
            }
            foreach (Dictionary<string, int> key in zh.Keys)
            {
                foreach (string kkey in key.Keys)
                {
                    Console.WriteLine(kkey + "_" + key[kkey] + "_" + zh[key]);
                }

這樣就可以了。

前面的都是給字典添加內(nèi)容的,就不說了,解釋最后三行代碼

            foreach (Dictionary<string, int> key in zh.Keys)
            {
                foreach (string kkey in key.Keys)
                {
                    Console.WriteLine(kkey + "_" + key[kkey] + "_" + zh[key]);
                }

第一行,因為zh的key是一個字典,所以foreach的key要設(shè)置為Dictionary<string, int> ,第二foreach的kkey因為Dictionary<string, int> 的key是string,所以設(shè)置kkey為string。

這樣思路就清晰了,kkey是(Dictionary<string, int> 的key(鍵)key是Dictionary<string, int>字典,所以值為key[kkey].zh[key]為最外圍的字典內(nèi)容。這樣只要思路理清了,就輸出正確了。

我在這里繞了好久才想明白。 

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C# 設(shè)計模式系列教程-簡單工廠模式

    C# 設(shè)計模式系列教程-簡單工廠模式

    簡單工廠模式職責(zé)單一,實現(xiàn)簡單,且實現(xiàn)了客戶端代碼與具體實現(xiàn)的解耦。
    2016-06-06
  • C#運算符之與,或,異或及移位運算小結(jié)

    C#運算符之與,或,異或及移位運算小結(jié)

    本文是對C#中的與,或,異或及移位運算進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • C#實現(xiàn)跨進程條件變量的示例代碼

    C#實現(xiàn)跨進程條件變量的示例代碼

    C#提供的多進程同步對象有互斥鎖和信號量,但是并沒有條件變量,雖然信號量條件變量一定程度可以等效,但是具體的使用還是會有區(qū)別,本文提供了一種條件變量的實現(xiàn)方法,可以用于進程間的同步控制,需要的朋友可以參考下
    2024-07-07
  • C#自定義特性(Attribute)詳解

    C#自定義特性(Attribute)詳解

    本文詳細講解了C#的自定義特性(Attribute),文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#中類的使用教程詳解

    C#中類的使用教程詳解

    在對類訪問使用時,常用到的有訪問類的成員、方法。本文就將通過示例為大家詳細講講C#中類的使用教程,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)學(xué)習(xí)
    2022-07-07
  • C#中FTP常用操作的示例代碼

    C#中FTP常用操作的示例代碼

    這篇文章主要為大家詳細介紹了C#中FTP常用操作的相關(guān)知識,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • .Net WInform開發(fā)筆記(三)談?wù)勛灾瓶丶?自定義控件)

    .Net WInform開發(fā)筆記(三)談?wù)勛灾瓶丶?自定義控件)

    自定義控件的出現(xiàn)有利于用戶更好的實現(xiàn)自己的想法,可以封裝一些常用的方法,屬性等等,本文詳細介紹一下自定義控件的實現(xiàn),感興趣的朋友可以了解下
    2013-01-01
  • C#計算字符串相似性的方法

    C#計算字符串相似性的方法

    這篇文章主要介紹了C#計算字符串相似性的方法,實例分析了C#計算字符串相似性的原理與算法實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • UnityShader使用圖像疊加實現(xiàn)運動模糊

    UnityShader使用圖像疊加實現(xiàn)運動模糊

    這篇文章主要為大家詳細介紹了UnityShader使用圖像疊加實現(xiàn)運動模糊,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 利用C#/VB.NET實現(xiàn)PPT轉(zhuǎn)換為HTML

    利用C#/VB.NET實現(xiàn)PPT轉(zhuǎn)換為HTML

    利用PowerPoint可以很方便的呈現(xiàn)多媒體信息,且信息形式多媒體化,表現(xiàn)力強。但難免在某些情況下我們會需要將PowerPoint轉(zhuǎn)換為HTML格式,本文就為大家整理了轉(zhuǎn)換方法,希望對大家有所幫助
    2023-05-05

最新評論

白银市| 龙游县| 清河县| 安达市| 苍南县| 彭泽县| 海门市| 阳泉市| 铜山县| 玉田县| 陆良县| 芒康县| 萨迦县| 湘阴县| 三明市| 务川| 白玉县| 夏津县| 明星| 宜良县| 霍山县| 鲜城| 湖南省| 博客| 河源市| 芮城县| 巴塘县| 土默特右旗| 古丈县| 武乡县| 济南市| 台北市| 衡阳县| 噶尔县| 沭阳县| 五华县| 双柏县| 崇明县| 建阳市| 花垣县| 宣威市|