【问题标题】:Remove a Key from Dictionary by key name按键名从字典中删除键
【发布时间】:2012-03-18 16:14:05
【问题描述】:

如果键是某个键,我正在尝试从字典中删除键。

parameterList 是一个dictionary<string,string>

parameterList.Remove(parameterList.Where(k => String.Compare(k.Key, "someKeyName") == 0)); 

【问题讨论】:

  • 您的问题不包含问题。
  • 您的代码会破坏字典的目的。避免将 LINQ 与字典一起使用。
  • 我总是先看看MSDN documentation。恕我直言,这是寻找 .Net API/SDK 问题答案的最佳起点。

标签: c# .net linq hashtable


【解决方案1】:

只需按键删除:

parameterList.Remove("someKeyName");

检查:

if (parameterList.Remove("someKeyName"))
{
    // key removed
}
else
{
    // dictionary doesn't contain the key
}

【讨论】:

  • 好吧,我必须以某种方式检查该键是否存在,然后我猜首先,否则我会得到一个空引用异常,如果它不存在。
  • @CoffeeAddict,如果字典不包含这个键,Remove 返回 false,否则 - true
  • 可能类似于 if(parameterList["someKeyName] != null) parameterList.Remove("someKeyName");
  • 嗯,好吧,当我查看智能感知时,它在此方法的异常区域中说,它可以返回一个空引用...所以你在哪里看到这个?
  • @gorlaz 为避免空检查,您应该使用if(parametersList.TryGetValue("keyname", out value){ ... }。它在大型词典上表现更好(检查:stackoverflow.com/a/25662175/3741900
【解决方案2】:

这就够了:

parameterList.Remove(key);

【讨论】:

    猜你喜欢
    • 2016-03-28
    • 1970-01-01
    • 2019-11-18
    • 2013-04-08
    • 2020-11-22
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多