泛型List<T>中方法Remove不能删除对象的解决

8 篇文章 0 订阅
5 篇文章 0 订阅

要从内存的List<QuestionsLibraryAndSort>对象中删除一条记录。语句是这样写的:

RedisKey.RedisQuestionsLibraryAndSort.Remove(message.QuestionsLibraryAndSort);

可是在前后输出list.count值,却发现没有改变。又再次做确认:

bool success = RedisKey.RedisQuestionsLibraryAndSort.Remove(message.QuestionsLibraryAndSort);

发觉success输出为 false 。这说明确实没删除。 message.QuestionsLibraryAndSort 是用消息队列RabbitMQ 传过来的  QuestionsLibraryAndSort 对象。在   RedisKey.RedisQuestionsLibraryAndSort 这个list 中不存在怀疑是编码的问题导致 Redis 中存在的 list 中的单个 QuestionsLibraryAndSort  与 RabbitMQ 传来的 QuestionsLibraryAndSort  不一致,导致RabbitMQ传来的QuestionsLibraryAndSort  与Redis 中的相应QuestionsLibraryAndSort 不完全一致而不能正确删除。我采取的一个解决办法是,利用 RemoveAll 方法来取代 Remove 方法。语句如下:

int success = RedisKey.RedisQuestionsLibraryAndSort.RemoveAll(m => m.GID == message.QuestionsLibraryAndSort.GID);

因为这个GID不为空,而且在行中是唯一的。用此搜索匹配记录并删除。经过测试 ,匹配行被顺利删除。 success=1 。问题解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值