码迷,mamicode.com
首页 > 其他好文 > 详细

if 循环的深入理解 哈希表的一种应用

时间:2016-06-21 09:23:13      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

   哈希表的值作为一个颜色容器,值默认为标识1, 表示未曾用过,若用过标识为0;
 1: 程序第一步    遍历哈希表,查找标识为1 未曾用过的颜色
我用了这个:
string colorno_use="";

foreach (string key in ht.Keys)
{

if(Convert.ToInt32(ht[key])==1)  //这个结果导致 所有为1的主键 都被循环了。 当然导致了后边的程序错乱问题。 
{
colorno_use = key;
ht[key] = 0;
++i;
break;
}

}

于是我改进了一下: 加了一个i 限制判断循环的条件 结果正常了,后边还有一个更简便的方法:

int i=0;

foreach (string key in ht.Keys)
{

if(Convert.ToInt32(hashtable[key])==1&&i==0)
{
colorno_use = key;
hashtable[key] = 0;
++i;
break;
}
}

更简便的方法就是把大括弧去掉 :哈希表和 遍历的简单方法在下边,if没有大括弧下边有两句以上是运行一次,进入下一条语句

 
           Hashtable ht = new Hashtable();
            ht.Add("PaleTurquoise", 1);
            ht.Add("Aqua", 1);
            ht.Add("CornflowerBlue", 1);
            ht.Add("Yellow", 1);
            ht.Add("Chocolate", 1);
            ht.Add("RosyBrown", 1);
            ht.Add("Orange", 1);
            ht.Add("LightGray", 1);
            ht.Add("LimeGreen", 1);
            ht.Add("Magenta", 1);
            ht.Add("DarkSalmon", 1);
            foreach (DictionaryEntry key in ht)
                if (Convert.ToInt32(key.Value) == 1)
                    return key.Key;
            return null;

if 循环的深入理解 哈希表的一种应用

标签:

原文地址:http://www.cnblogs.com/zuochanzi/p/5602458.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!