0

私は辞書を持っています:

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

キーにはたくさんのホスト (文字列) があります。この host を例に取りましょうabc.def.ghi。値には のリストがありIronportServerStatusます。

次の追跡は、値 [0] の最初の要素を削除したいということです。カウント >= 10 の場合。その後、5 分すべて取得する新しいステータスを追加したいと思います。したがって、最大数は 10 です。

最初のアイテムを取得しList<List<IronportServerStatus>>て削除しています。その後、新しいログデータを追加していますがIronportServerStatus、これも機能しません。

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);
4

1 に答える 1