淺析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)試通過(guò),但是問(wèn)題又來(lái)了,當(dāng)我們修改了ht2中了的鍵值之后,發(fā)現(xiàn)ht中的鍵值也修改了,顯然這不是我想要的結(jié)果,然后略微思考,用了Clone(),問(wèn)題得以解決。
DataTable同樣,DataTable dt2 = dt.Copy()復(fù)制或者直接給值都是不可以的,同樣會(huì)改變?cè)瓉?lái)的datatble中的值
這里需要修改HashTable中的鍵值,一般會(huì)報(bào)異常,提示您的集合已修改XXX什么的,因?yàn)閒oreach遍歷的時(shí)候,in 后面的集合不可更改
這個(gè)時(shí)候應(yīng)該我想到了,應(yīng)該在遍歷之前復(fù)制一份
相關(guān)文章
關(guān)于C#調(diào)用C++dll傳指針釋放內(nèi)存問(wèn)題
這篇文章主要介紹了關(guān)于C#調(diào)用C++dll傳指針釋放內(nèi)存問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
C# 整數(shù)轉(zhuǎn)二進(jìn)制字符串方式
這篇文章主要介紹了C# 整數(shù)轉(zhuǎn)二進(jìn)制字符串方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
C# wpf Brush轉(zhuǎn)Hex字符串的實(shí)例代碼
這篇文章主要介紹了C# wpf Brush轉(zhuǎn)Hex字符串的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
asp.net core mvc權(quán)限控制:在視圖中控制操作權(quán)限
本文主要介紹了asp.net core mvc權(quán)限控制:在視圖中控制操作權(quán)限。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
C#使用winform實(shí)現(xiàn)進(jìn)度條效果
這篇文章主要為大家詳細(xì)介紹了C#使用winform實(shí)現(xiàn)進(jìn)度條效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07

