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#实现将DataTable内容输出到Excel表格的方法

    C#实现将DataTable内容输出到Excel表格的方法

    这篇文章主要介绍了C#实现将DataTable内容输出到Excel表格的方法,较为详细的分析了C#基于DataTable保存Excel数据的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • C#图片添加水印的实现代码

    C#图片添加水印的实现代码

    这篇文章主要为大家详细介绍了C#给图片添加水印的实现代码,不仅可以为图片加文字水印,还可以判断是否是图片文件,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Unity虚拟摇杆的实现方法

    Unity虚拟摇杆的实现方法

    这篇文章主要为大家详细介绍了Unity虚拟摇杆的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C#使用StopWatch获取程序毫秒级执行时间的方法

    C#使用StopWatch获取程序毫秒级执行时间的方法

    这篇文章主要介绍了C#使用StopWatch获取程序毫秒级执行时间的方法,涉及C#操作时间的相关技巧,需要的朋友可以参考下
    2015-04-04
  • C# HttpClient超时重试机制详解

    C# HttpClient超时重试机制详解

    超时重试的实现方式可以使用循环结构,在请求发起后等待一定时间,若超时未收到响应,则再次发起请求,循环次数可以根据实际情况进行设置,一般建议不超过三次,这篇文章主要介绍了C# HttpClient超时重试,需要的朋友可以参考下
    2023-06-06
  • C#连接Oracle数据库的实例方法

    C#连接Oracle数据库的实例方法

    C#连接Oracle数据库的实例方法,需要的朋友可以参考一下
    2013-04-04
  • unity实现简单的贪吃蛇游戏

    unity实现简单的贪吃蛇游戏

    这篇文章主要为大家详细介绍了unity实现简单的贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • C#实现WPF项目复制和移动文件夹

    C#实现WPF项目复制和移动文件夹

    这篇文章介绍了C#实现WPF项目复制和移动文件夹的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • C#中托管DLL和非托管DLL的区别详解

    C#中托管DLL和非托管DLL的区别详解

    这篇文章主要介绍了C#中托管DLL和非托管DLL的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • C# 位图BitArray的使用

    C# 位图BitArray的使用

    如果我们着重处理一个以位为单位的数据时,就可以考虑使用位数组。本文就介绍了C# 位图BitArray的使用,感兴趣的可以了解一下
    2021-06-06

最新评论