淺析C#的復(fù)制和克隆
本文淺析了C#的復(fù)制和克隆技術(shù),對(duì)于有需要的朋友可以參考下。
在C#中,用HashTable,DataTable等實(shí)現(xiàn)復(fù)制和克隆,下面直接看例子:
HashTable ht = null; ht = new HashTable(); foreach(string s in ht) { //... } //上面遍歷的時(shí)候需要修改HashTable中的鍵值,一般會(huì)報(bào)異常,提示您的集合已修改XXX什么的,因?yàn)閒oreach遍歷的時(shí)候,in 后面的集合不可更改 //這個(gè)時(shí)候應(yīng)該我想到了,應(yīng)該在便利之前復(fù)制一份, HashTable ht2 = new HashTable(); ht.Copy(ht2,0);
以上代碼能調(diào)試通過,但是問題又來了,當(dāng)我們修改了ht2中了的鍵值之后,發(fā)現(xiàn)ht中的鍵值也修改了,顯然這不是我想要的結(jié)果,然后略微思考,用了Clone(),問題得以解決。
DataTable同樣,DataTable dt2 = dt.Copy()復(fù)制或者直接給值都是不可以的,同樣會(huì)改變?cè)瓉淼膁atatble中的值
這里需要修改HashTable中的鍵值,一般會(huì)報(bào)異常,提示您的集合已修改XXX什么的,因?yàn)閒oreach遍歷的時(shí)候,in 后面的集合不可更改
這個(gè)時(shí)候應(yīng)該我想到了,應(yīng)該在遍歷之前復(fù)制一份
相關(guān)文章
C# winfrom 模擬ftp文件管理實(shí)現(xiàn)代碼
從網(wǎng)上找到的非常好用的模擬ftp管理代碼,整理了一下,希望對(duì)需要的人有幫助2014-01-01關(guān)于javascript冒泡與默認(rèn)事件的使用詳解
本篇文章是對(duì)javascript中冒泡與默認(rèn)事件的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05詳解C#編程中異常的創(chuàng)建和引發(fā)以及異常處理
這篇文章主要介紹了C#編程中異常的創(chuàng)建和引發(fā)以及異常處理,文中介紹了Catch塊和Finally塊等基本的異常處理要點(diǎn),需要的朋友可以參考下2016-02-02C#導(dǎo)出生成excel文件的方法小結(jié)(xml,html方式)
C#導(dǎo)出生成excel文件的方法小結(jié)(xml,html方式)。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-10-10C# 文件下載之?dāng)帱c(diǎn)續(xù)傳實(shí)現(xiàn)代碼
本篇文章主要介紹了C# 文件下載之?dāng)帱c(diǎn)續(xù)傳實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01C#實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04