C#中List.Contains(T)失效的解决方法
更新时间:2024年03月05日 15:38:12 作者:天下湿湿
这篇文章主要介绍了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); } }
习惯了这么用,却不小心踩坑
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)); }
到此这篇关于C#中List.Contains(T)失效的文章就介绍到这了,更多相关C# List.Contains(T)失效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
c#中winform根据邮箱地址和密码一键发送email的实现
本文主要介绍了c#winform根据邮箱地址和密码一键发送email的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-07-07C#.net编程创建Access文件和Excel文件的方法详解
这篇文章主要介绍了C#.net编程创建Access文件和Excel文件的方法,结合实例形式总结分析了C#创建Access与Excel文件的几种常用技巧,具有一定参考借鉴价值,需要的朋友可以参考下2016-06-06
最新评论