如何从c#中的字典列表中删除项目?

如何从c#中的字典列表中删除项目?,c#,C#,以下是我在字典列表中添加的值:- 1,1000 2,2000 1,1000 3,3000 我可以根据键值从字典中删除:- if (i == null) return; var dict = app["ItemList"] as Dictionary<int, int>; if (dict != null) dict.Remove(i.ItemId); if(i==null) 回来 var dict=app[“ItemList”]作为字典; if(dict!=nul

以下是我在字典列表中添加的值:-

1,1000
2,2000
1,1000
3,3000
我可以根据键值从字典中删除:-

if (i == null)
    return;
var dict = app["ItemList"] as Dictionary<int, int>;
if (dict != null)
    dict.Remove(i.ItemId);
if(i==null)
回来
var dict=app[“ItemList”]作为字典;
if(dict!=null)
dict.Remove(i.ItemId);
这里我传递键值(I.ItemId),它从字典中删除一个项。但当我使用字典列表时,我无法根据键值从字典列表中删除项

if (i == null)
    return;
var dict = app["ItemList"] as List<Dictionary<int, int>>;
if (dict != null)
{
    var itemDict = new Dictionary<int, int>();
    itemDict[i.ItemUid] = 0;
    dict.Remove(itemDict);
}
if(i==null)
回来
var dict=app[“ItemList”]作为列表;
if(dict!=null)
{
var itemDict=新字典();
itemDict[i.ItemUid]=0;
删除(itemDict);
}
注意:-当我从字典列表中删除时,只有键值可用


非常感谢您的帮助。

假设i.ItemUid是一个键:

var dict = app["ItemList"] as List<Dictionary<int, int>>;
if (dict != null)
{
    foreach (var x in dict) x.Remove(i.ItemUid);
}

你能参考一下这个链接吗:没有。。从列表中删除记录字典int,int--。我理解了如何从字典int中删除,int您需要首先从列表中识别和检索字典。您打算如何区分列表中的词典?@MongZhu。当我必须删除时,我只有键值可用。我需要删除键值匹配的所有记录。
ItemUid
是否仅存在于列表中的一个词典中?或者它可以出现在多个词典中?如果它是唯一的,那么您可以检查itItemUid是否为密钥。。。第一个例子是工作。它删除了匹配的记录,但目录计数仍然相同。如果你能帮忙的话,我怎么处理空的东西呢。THanks@user1327064为什么您希望dict的计数发生变化?为此,您必须从数据库中删除整个词典list@user1327064:可能您认为dict.Count是键的总数。。。不是!如果你想要这个数字,请参阅下面的编辑我的答案。
var dict = app["ItemList"] as List<Dictionary<int, int>>;
if (dict != null)
{
    foreach (var x in dict) x.Remove(i.ItemUid.Key);
}
int totalNumberOfKeys = 0;
foreach (var x in dict) totalNumberOfKeys += x.Count;