私は辞書を持っています:
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);