у меня есть Dictionary<int, MyClass>
Содержит 100 000 наименований
10000 элементов значения заполняется, а 90,000 равны нулю.
У меня есть этот код:
var nullitems = MyInfoCollection.Where(x => x.Value == null).ToList();
nullitems.ForEach(x => LogMissedSequenceError(x.Key + 1));
private void LogMissedSequenceError(long SequenceNumber)
{
DateTime recordTime = DateTime.Now;
var errors = MyXDocument.Descendants("ERRORS").FirstOrDefault();
if (errors != null)
{
errors.Add(
new XElement("ERROR",
new XElement("DATETIME", DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff")),
new XElement("DETAIL", "No information was read for expected sequence number " + SequenceNumber),
new XAttribute("TYPE", "MISSED"),
new XElement("PAGEID", SequenceNumber)
)
);
}
}
Похоже, это займет около 2 минут. Кажется, я не могу найти, где может быть узкое место или это звучит правильно?
Кто-нибудь может понять, почему это так долго?