C#中List.Contains(T)失效的解決方法
list.Contains() “失效“ ???
public void RemoveCustomMaterialInfo(MaterialInfo info) { if (m_MaterialList == null) { return; } if (m_MaterialList.Contain(info)) { m_MaterialList.Remove(info); Debug.Log($"刪除 :info: {info.serial}, {info.serial}, {info.velocity},{info.note}, left : {this.m_MaterialList.Count}"); //存儲本地 //var content = JsonUtility.ToJson(this.m_MaterialList); var content = JsonConvert.SerializeObject(GetMaterialInfoListBySerial("自定義")); File.WriteAllTextAsync(MaterialCustomConfigPath, content); } }
習(xí)慣了這么用,卻不小心踩坑
List.Contains(T t) t必須是原來列表中的引用才有效,如果info是你new出來的,不好意思,不起做用了,包括Remove也是如此
===》處理辦法:
private bool Contain(MaterialInfo materialInfo) { if (this.m_MaterialList == null) { return false; } return m_MaterialList.Exists( info => info.serial.Equals(materialInfo.serial) && info.type.Equals(materialInfo.type) && info.velocity.Equals(materialInfo.velocity) && info.note.Equals(materialInfo.note)); }
到此這篇關(guān)于C#中List.Contains(T)失效的文章就介紹到這了,更多相關(guān)C# List.Contains(T)失效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Kubernetes實現(xiàn)前后端應(yīng)用的金絲雀發(fā)布(兩種方案)
這篇文章主要介紹了基于Kubernetes實現(xiàn)前后端應(yīng)用的金絲雀發(fā)布,文中給大家提到了兩種常用方案,通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12c#判斷數(shù)據(jù)庫服務(wù)器是否已經(jīng)啟動的方法
這篇文章主要介紹了使用c#判斷數(shù)據(jù)庫服務(wù)器是否已經(jīng)啟動的方法,大家參考使用吧2014-01-01c#使用filesystemwatcher監(jiān)視文件系統(tǒng)的變化
對于一個文件夾的改變,C#這邊有自己的類來實現(xiàn),我們不需要關(guān)心它的內(nèi)部實現(xiàn)機(jī)制,不需要關(guān)心它底層調(diào)用哪些API,我們只需要關(guān)心如何去調(diào)用它,如何讓它幫助我們記錄文件夾的修改情況即可,下面我們就實現(xiàn)它2014-01-01c#實現(xiàn)數(shù)據(jù)同步的方法(使用文件監(jiān)控對象filesystemwatcher)
這篇文章主要介紹了C#使用文件監(jiān)控對象FileSystemWatcher實現(xiàn)數(shù)據(jù)同步,大家參考使用吧2013-12-12Unity UGUI的RectMask2D遮罩組件的介紹使用
這篇文章主要為大家介紹了Unity UGUI的RectMask2D遮罩組件的介紹使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07WinForm開發(fā)中屏蔽WebBrowser腳本錯誤提示的方法
這篇文章主要介紹了WinForm開發(fā)中屏蔽WebBrowser腳本錯誤提示的方法,在C#項目開發(fā)中比較實用,需要的朋友可以參考下2014-08-08