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)失效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
基于Kubernetes实现前后端应用的金丝雀发布(两种方案)
这篇文章主要介绍了基于Kubernetes实现前后端应用的金丝雀发布,文中给大家提到了两种常用方案,通过示例代码给大家介绍的非常详细,需要的朋友可以参考下2021-12-12
c#使用filesystemwatcher监视文件系统的变化
对于一个文件夹的改变,C#这边有自己的类来实现,我们不需要关心它的内部实现机制,不需要关心它底层调用哪些API,我们只需要关心如何去调用它,如何让它帮助我们记录文件夹的修改情况即可,下面我们就实现它2014-01-01
c#实现数据同步的方法(使用文件监控对象filesystemwatcher)
这篇文章主要介绍了C#使用文件监控对象FileSystemWatcher实现数据同步,大家参考使用吧2013-12-12
Unity UGUI的RectMask2D遮罩组件的介绍使用
这篇文章主要为大家介绍了Unity UGUI的RectMask2D遮罩组件的介绍使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-07-07
WinForm开发中屏蔽WebBrowser脚本错误提示的方法
这篇文章主要介绍了WinForm开发中屏蔽WebBrowser脚本错误提示的方法,在C#项目开发中比较实用,需要的朋友可以参考下2014-08-08


最新评论