【问题标题】:How to remove one element from dictionary如何从字典中删除一个元素
【发布时间】:2018-12-26 20:28:29
【问题描述】:

我有这样的字典

private Dictionary<BasePlayer, List<ulong>> findit = new Dictionary<BasePlayer, List<ulong>>();

并使用

向其中添加元素
findit[player].Add(targetid); 
findit[player].Add(friendid); 

在另一部分

if (findit.ContainsKey(player))
findit.Remove(player);

但使用 findit.Remove(player) 会删除所有元素“targetid 和friendid”

我如何才能从 findit 字典中只删除 targetid ?

【问题讨论】:

  • findit[player].Remove(targetid);?
  • 你说,你想从字典中删除元素,但实际上你想从列表中删除一个元素,这是字典中的一个值。 findit[player].Remove(targetid);
  • 是的,谢谢,另一个问题,我如何在不指定值的情况下从 findit[player] 中删除第一个条目,这是对还是错? findit[player].Remove(0);

标签: c# .net dictionary unity3d


【解决方案1】:

你需要的是这样的:

if (findit.ContainsKey(player))
{
     findit[player].Remove(targetid);
}

使用findit.Remove(player),您可以从带有键player 的字典中删除键值对。根据您的帖子,您不需要这个。您只想从与此键关联的值(在您的情况下为列表)中删除一个条目。

更新

如果您只想删除与播放器关联的列表中的第一项,您可以使用列表的方法RemoveAt 作为参数传递 0,因为您想删除第一项。

【讨论】:

  • 谢谢,另一个问题,我如何在不指定值的情况下从 findit[player] 中删除第一个条目,类似于 findit[player].Remove([0]);
猜你喜欢
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-05
  • 2010-12-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多