【问题标题】:Remove single item from a list inside a dictionary从字典中的列表中删除单个项目
【发布时间】:2023-01-07 00:16:35
【问题描述】:

这感觉很简单,但我尝试了很多脚本,但没有任何效果。 我有一个带有 Id 字段的接口 - 名为ITrust, 我有一本字典 - Dictionary<string, Ilist<ITrust>>。 现在我试图从字典中的列表中删除一个对象,但找不到正确的脚本。

我尝试了一些类似的事情:

dictionaryName[keyName].Remove(x => x.Id == Id);

但它引发了一个例外 -

无法将 lambda 表达式转换为 ITrust 类型,因为它不是委托类型

任何人都知道正确的脚本,或者如果有问题我可以尝试做吗?

【问题讨论】:

    标签: c# .net linq lambda


    【解决方案1】:

    首先,这是一个编译错误,而不是异常。其次,如果您不明白它的含义,请停止使用 IList<>

    如果你使用普通的List<>,你就有了一个List.RemoveAll函数,它可以完全满足你的需求。

    【讨论】:

    • 另外,基于您需要这个的事实,我非常怀疑列表是否适合您。您可能应该改用 HashSet<>
    • 他似乎使用 IList 而不是 IList<T>。
    • @Ralf,我不相信你,错误消息是强类型的。你有任何证据支持你的主张吗?
    • 不,就是他写的。
    • 谢谢@Blindy,尽管我确实需要 IList<T> 进行测试,但它确实有效,但我会设法找到解决方法。不管怎样,你帮了我很多。谢谢!
    猜你喜欢
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多