从Dictionary中删除值

时间:2013-11-14 10:16:25

标签: c# dictionary

我有一本字典:

public ConcurrentDictionary<string, List<IronportServerStatus>> IronportServerStatusDict = new ConcurrentDictionary<string, List<IronportServerStatus>>();

在密钥中有很多主机(字符串)。让我们以此主机abc.def.ghi为例。在值中有一个IronportServerStatus列表。

下一步是我要删除值[0]的第一个元素。如果count> = 10。 之后我想添加新状态,我得到所有5分钟。所以最大数量是10。

我收到了List<List<IronportServerStatus>>并删除了第一项。 之后我添加了一个IronportServerStatus的新logdata,这也不起作用。

var result = SystemCore.Instance.IronportServerStatusDict.Where(o => o.Key == host.Host).Select(o => o.Value).ToList();

if (result.Count >= 10)
{
    result.RemoveAt(0);
}

result.Add(logData);

有人能帮助我吗?


答案:

SystemCore.Instance.IronportServerStatusDict.Where(o => o.Key == host.Host).FirstOrDefault().Value.RemoveAt(0);
SystemCore.Instance.IronportServerStatusDict.Where(o => o.Key == host.Host).FirstOrDefault().Value.Add(logData);

1 个答案:

答案 0 :(得分:0)

尝试以下

// Get the list
var result = SystemCore.Instance.IronportServerStatusDict[host.Host];

if (result.Count >= 10)
{
    result.RemoveAt(0);
}

result.Add(logData);

Console.WriteLine(SystemCore.Instance.IronportServerStatusDict[host.Host][0]);
相关问题