如何从字典列表中删除特定元素

时间:2018-11-14 22:56:01

标签: c# list dictionary

我有字典

System.Runtime.Serialization.Formatters.Soap

更新词典的最佳方法是什么,以使列表中的对象之一被已知密钥删除。例如,我想从列表中删除第三个对象。
删除将通过特定键删除值。因此,它将删除与该键相对应的整个列表。我想更新字典中的列表。

2 个答案:

答案 0 :(得分:1)

您可以使用Remove方法。

Start container
TestClass1 test 56ead80b-ec34-4dd6-9c0d-d6f07a4eb0d8
TestClass2 test 56ead80b-ec34-4dd6-9c0d-d6f07a4eb0d8
Stop container

根据文档,该方法返回:

  

如果成功找到并删除了元素,则为true;否则为false。否则为假。如果在字典中找不到密钥,则此方法返回false。

更新

根据您更新的问题,您想要删除列表中的一个元素,这意味着先获取字典的值,然后再更改该值内的一个元素(在您的情况下为列表)。因此,您可以在此处使用列表的RemoveAt方法。

myDictionary.Remove("key");

答案 1 :(得分:1)

  

更新字典,以便从列表中删除一个对象?

首先,您需要从字典中检索List,例如,您可以使用密钥。就像这样:

if (myDictionary.TryGetValue("key", out List<Object> value)) {
  value.RemoveAt(2);
}

您可以使用TryGetValue根据您的密钥获取值(如果存在,则可以获取List<object>引用。

由于以上示例中对value的引用与Dictariony<>使用的引用相同,因此您可以使用List.RemoveAt(Int32)从列表中删除第3个。