`
ronon
  • 浏览: 195978 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

疑问...........

 
阅读更多

如果我有一个DataSet

里面有一表三列一行

现在我要循环这个DS第一个表里的行

并改变第三列的值,

循环结束后

再次循环,这次只是输出它们的值

值会改变吗?

 为了证明这个问题,写了这些代码:

 

 

            DataSet ds = new DataSet();
            DataTable dt = new DataTable();
            dt.Columns.AddRange(new DataColumn[] { new DataColumn("a"), new DataColumn("b"), new DataColumn("c") });
            DataRow dr = dt.NewRow();
            dr["a"] = 1;
            dr["b"] = 2;
            dr["c"] = 3;
            dt.Rows.Add(dr);
            ds.Tables.Add(dt);

            foreach (DataRow r in dt.Rows)
            {
                string a = r["a"].ToString();
                string b = r["b"].ToString();
                string c = r["c"].ToString();

                dr["a"] = 111;
            }

            foreach (DataRow r in dt.Rows)
            {
                string a = r["a"].ToString();
                string b = r["b"].ToString();
                string c = r["c"].ToString();
                MessageBox.Show(a + "|" + b + "|" + c);
            }

事实证明,它最后会输出"111|2|3"

值是会改变的

想象中当该列该行的值改变后,应该要重新将该行赋值给这个DataTable

并把这个DataTable重新赋值给DataSet

然后再次循环值才会改变

 

------------

 

如果是HashTable 呢,改变其中某个Value,值也会变吗?

于是写了这些

 

            Hashtable ht = new Hashtable();
            ht.Add("a", "a");
            ht.Add("b","b");

            foreach (string str in ht.Keys)
            {
                if (str == "b")
                {
                    ht[str] = "bb";
                }
            }


            foreach (string str in ht.Keys)
            {
                  MessageBox.Show(str +"|" +ht[str].ToString());
            }

 

 调试时报错:“集合已修改;可能无法执行枚举操作。”

看来Hashtable在循环时是无法修改其值的(修改、删除都不可以)

 而DataSet是可以的?

 

 

 

分享到:
评论

相关推荐

    线性规划常见疑问.doc

    线性规划常见疑问.doc

    各海关答企业关于外发加工的疑问.pdf

    各海关答企业关于外发加工的疑问.pdf

    如何培养执行力及解决管理者的疑问.pptx

    如何培养执行力及解决管理者的疑问.pptx

    iptables-1.4.21-35.el7.x64-86.rpm.tar.gz

    安装过程中若有疑问或遇到困难,用户可以联系博主获取全程指导。 iptables-1.4.21版本是iptables的较新版本,提供了包括Netfilter框架在内的诸多增强和改进功能。Netfilter是Linux内核中的数据包过滤框架,iptables...

    firefox-115.12.0-1.el7.centos.x64-86.rpm.tar.gz

    如果有任何疑问或困难,用户可以私信博主寻求帮助,博主会提供全程的安装指导。 该文件提供了一个完整的安装方案,使得用户能够在CentOS系统上安装最新版本的Firefox浏览器,并确保系统环境兼容稳定。通过这种打包...

    xlsx.full.min.js

    如果你在使用过程中遇到任何疑问,可以查阅官方文档或在线社区寻求帮助。 总的来说,`xlsx.full.min.js`作为一个优秀的JavaScript Excel处理库,为前端开发者提供了一种高效、灵活的方式来处理Excel文件,大大简化...

    网上开店工具......

    1. 客服工具:淘宝旺旺是必备的在线客服工具,用于即时解答顾客疑问,提高转化率。 2. 评价管理:积极回应顾客评价,尤其是差评,改善服务,提升店铺信誉。 3. 会员管理:建立会员制度,通过积分、优惠等方式鼓励...

    python-cheetah-2.4.4-5.el7.centos.x64-86.rpm.tar.gz

    如果用户在安装过程中有任何疑问,可以按照提供的指南联系博主获取额外的帮助。 python-cheetah-2.4.4-5.el7.centos.x64-86.rpm.tar.gz是一个专门为CentOS 7系统准备的RPM软件包,内含Python Cheetah模板引擎及其...

    STLinkV2.J28.M18固件.rar

    STLinkV2.J28.M18固件是STMicroelectronics公司生产的STLinkV2调试器和编程器的固件更新。STLinkV2是一款广泛应用于STM8和...在处理过程中如有任何疑问,建议查阅STMicroelectronics的官方文档或联系技术支持获取帮助。

    疑问句大全_一般疑问句.doc

    疑问句大全_一般疑问句.doc

    填入所缺的疑问词.doc

    在英语语法中,疑问词是构成特殊疑问句的关键元素,它们用于询问具体信息,如事物、时间、地点、方式、原因等。以下是对给定内容的详细解释: 一、填入所缺的疑问词 1. 为什么(Why)你喜欢夏天?因为我可以游泳。...

    CPU选购疑问解答.pdf

    CPU选购疑问解答.pdf

    ASP搜索引擎蜘蛛爬行日志生成程序.rar

    更多的seo工具包请登录我的博客或者联系Q:...如果有什么疑问请登录博客留言,程序员百味非常高兴能认识一位做seo的朋友!希望我们能一起努力! come on! believe yourself! 程序员百味博客:www.bywei.cn/blog

    英语一般疑问句与特殊疑问句.ppt

    英语一般疑问句与特殊疑问句.ppt

    英语一般疑问句与特殊疑问句 .ppt

    英语一般疑问句与特殊疑问句 .ppt

    Java中的`java.util.stream.Collectors.toMap()`方法有什么作用

    如果你有任何疑问或需要进一步的帮助,请随时联系我们。 本文详细介绍了Collectors.toMap()方法的基本概念、使用场景、性能优化策略、实际应用案例以及与其他Collector的结合使用。希望能够帮助你在实际开发中更好...

    一般疑问句和特殊疑问句练习.pdf

    1. 一般疑问句的定义:一般疑问句是一种用yes或no来回答的疑问句,通常用于询问事实或确认信息。 2. 一般疑问句的构成: - 以be动词(am, is, are)开头,如:"Is this a box?" - 以助动词Do, Does, Did开头,如...

    ShtermClient-0.0.2.1.app_APP开发_ShtermClient_

    本站是交换下载平台,提供一个交流的渠道,下载的内容请自行研究使用。更多...请用浏览器直接下载本站软件,用WinRAR最新...如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.

Global site tag (gtag.js) - Google Analytics