Adding 90000 XElement to XDocument

Posted by Jon on Stack Overflow See other posts from Stack Overflow or by Jon
Published on 2010-03-15T16:25:24Z Indexed on 2010/03/15 16:29 UTC
Read the original article Hit count: 462

Filed under:
|
|
|
|

I have a Dictionary<int, MyClass>

It contains 100,000 items

10,000 items value is populated whilst 90,000 are null.

I have this code:

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

This seems to take about 2 minutes to complete. I can't seem to find where the bottleneck might be or if this timing sounds about right?

Can anyone see anything to why its taking so long?

© Stack Overflow or respective owner

Related posts about c#

Related posts about .net-3.5