【问题标题】:Deleting all entries in a Dictionary c# WPF删除字典中的所有条目 c# WPF
【发布时间】:2016-08-27 12:55:35
【问题描述】:

我有一个Dictionary,它正在存储Skilodge 的成员,我想要一种删除所有成员的方法。目前,它似乎只删除了一个。这是我尝试过的方法:

public void DeleteAll()
{
    for (int i = 0; i < Skiers.Count; i = i + 1)
    {
        string iString = i.ToString();
        Skiers.Remove(iString);
    }
}

【问题讨论】:

标签: c# wpf dictionary


【解决方案1】:

使用Clear方法检查这个link

Skiers.Clear()

【讨论】:

  • 非常感谢!不能接受 10 分钟,但我会接受
【解决方案2】:

您可以使用Skiers.Clear(); 删除给定字典的所有现有值,并且您可以使用Skiers= new Dictionary&lt;T,T&gt;() 获取新的字典(新实例);

Dictionary.Clear Method () 将删除字典中的所有键和值。

您也可以尝试条件删除,让字典可以定义和初始化如下:

Dictionary<string, String> dictSample = new Dictionary<string, string>();
dictSample.Add("a", "value 1");
dictSample.Add("b", "value 1");
dictSample.Add("c", "value 12");
dictSample.Add("d", "value 10");
dictSample.Add("e", "value 1");

并且您需要删除一些在其值部分具有value 1 的特定项目,然后您可以使用以下代码来删除它们:

var removable = dictSample.Where(x => x.Value == "value 1").Select(x => x.Key).ToList();;
foreach (var dictItem in removable)
{
    dictSample.Remove(dictItem);
}

【讨论】:

  • 条件删除可能会抛出异常,因为您正在删除正在迭代的集合中的一项。尝试在删除之前使用 ToArray 或 ToList。
猜你喜欢
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
  • 2018-12-04
  • 1970-01-01
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多