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

C#如何對Dictionary遍歷賦值

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

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)遍歷。好處就是簡單,但是缺點(diǎ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;
                }
            }

默認(rèn)HostMessage中有值。

這樣就可以了。

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

            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]);
            }

補(bǔ)充:

更新一個新用法

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]);
                }

第一行,因?yàn)閦h的key是一個字典,所以foreach的key要設(shè)置為Dictionary<string, int> ,第二foreach的kkey因?yàn)镈ictionary<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)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

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

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

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

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

    C#中類的使用教程詳解

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

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

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

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

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

    C#計(jì)算字符串相似性的方法

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

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

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

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

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

最新評論

花垣县| 清涧县| 辽宁省| 开鲁县| 石门县| 图木舒克市| 邳州市| 崇左市| 江津市| 广昌县| 罗定市| 都江堰市| 新民市| 扎兰屯市| 忻州市| 花莲市| 剑川县| 上林县| 庐江县| 专栏| 洪雅县| 静安区| 库尔勒市| 孝义市| 剑川县| 峡江县| 卢龙县| 水城县| 巴彦县| 宜君县| 桓台县| 三江| 晋宁县| 淮南市| 岑溪市| 洛浦县| 闵行区| 衡阳市| 同德县| 长兴县| 东源县|