【问题标题】:How to remove Item for the dictonary of <string, list<Items>>如何删除 <string, list<Items>> 字典的 Item
【发布时间】:2021-12-28 04:31:52
【问题描述】:

我有一本水果词典&lt;string, list&lt;Fruit&gt;&gt;我的词典给出了以下输出

Job ID: 1001         items:
                        "Apple"
                        "Mango"
                        "Banana"
                        "Pine Apple"
                        "Orange"

Job ID: 1002         items:
                        "Banana"
                        "Mango"
                        "Pine Apple"
                        "Orange"
                        "Apple"

Job ID: 1003         items:
                        "Apple"
                        "Banana"
                        "Orange"
                        "Pine Apple"
                        "Mango"

现在我想从水果列表中删除一个特定的水果

例如,我想从列表中删除Apple

foreach(var i in fruitDic)
            {
                foreach(var k in i.Value)
                {
                    // furitName is variable which I want to remove from list
                    if (k.Name == fruitName)
                    {
                        // here I am getting an error
                        k.Value.Remove(fruitName);

                    }
                }
            }

我收到一条错误消息:Error CS1503 Argument 1: cannot convert from 'string' to 'Practice.Models.Fruit'

【问题讨论】:

  • 注意你的问题有点普通。该数据不是&lt;string, list&lt;Fruit&gt;&gt; 的有用表示,因此有点令人困惑,这是我猜测没有尽快回答的唯一原因
  • @saghar francis:List&lt;Fruit&gt; 有重复项吗?如果没有,请改用SortedSet&lt;Fruit&gt;:将提供更多性能。
  • @saghar 在if (k.Name == fruitName) 行中,k 是字符串列表中的一个项目,因此它将是if (k == fruitName),顺便说一句,在foreach 循环中,您不能修改集合,即删除任何项目,您都可以修改对象的任何属性。

标签: c# asp.net asp.net-core c#-4.0


【解决方案1】:

你可以使用RemoveAll

删除所有符合定义的条件的元素 指定谓词。

给定

var dict = new Dictionary<string, List<Fruit>>();

用法

foreach (var list in dict.Values)
   list.RemoveAll(x => x.Name == "SomeFunkyFruit");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    相关资源
    最近更新 更多