if 循环的深入理解 哈希表的一种应用
2016-06-21 09:00
99 查看
哈希表的值作为一个颜色容器,值默认为标识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没有大括弧下边有两句以上是运行一次,进入下一条语句。结果呢在此处不合适,调试了一下,因为foreach 管辖范围广,导致if 执行之后又进入了forech 然后又是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;
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没有大括弧下边有两句以上是运行一次,进入下一条语句。结果呢在此处不合适,调试了一下,因为foreach 管辖范围广,导致if 执行之后又进入了forech 然后又是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;
相关文章推荐
- 脸识别
- Charts in Ionic
- JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
- Jmeter(三)-简单的HTTP请求(非录制)
- 接入微信,支付宝,浦发银行的统一支付方案
- 友盟自动更新技术解决方案
- MYSQL ERROR CODE 错误编号的意义
- iOS Base64加密
- 分享一个安卓校园二手交易系统客户端+服务端+数据库
- Win10更新补丁失败后出现无法更新正在撤销 解决办法
- 【1】算法进阶之雾里看花:七大查找算法
- [codevs1079] 回家
- [李景山php]每天laravel-20160904|Dispatcher-4
- 6月17日 TP框架增删改查
- 1025 - The Specials Menu
- Jmeter(二)-使用代理录制脚本
- 分享一个3D多人在线手游“暴走亚瑟王“的服务端源码 有1.9G
- osgi+camel+karaf运行环境搭建(2)
- YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法
- Python快速入门