Каков наиболее эффективный способ перемещения коллекции/IEnumeration в C#. У меня есть список, который содержит почти 1100 объектов. почти 10 из этих объектов, inturn содержат 1000 подобъектов (одного типа). Переход к этому списку занимает почти 5-6 секунд. Вот мой код:Самый эффективный способ работы с IEnumerable
foreach (Parameter par in this.AllParameters) //this.AllParameters is Generic.List type
{
foreach (Parameter subPar in par.WrappedSubParameters)
{
subPar.IsSelected = false;
}
par.IsSelected = false;
}
Есть ли способ оптимизировать этот код, чтобы он был достаточно быстрым, не принимая 5-6 секунд?
Я предлагаю вам сначала запустить [профилировщик] (http://stackoverflow.com/q/3927/87698) по вашему коду. Время может быть потеряно в свойстве 'AllParameters', в свойстве' WrappedSubParameters', в установщике 'IsSelected', в одном из счетчиков и т. Д. (О, и если у вас есть время, [серия Эрика Липперта об общем бенчмаркинге ошибки] (http://tech.pro/blog/1293/c-performance-benchmark-mistakes-part-one) стоит прочитать.) – Heinzi
Я бы не ожидал, что примерно один миллион пишет, как это, взять 5 -6 секунд. Вы синхронизированы в сборке отладки? В релизе сборки вне VS, я бы ожидал, что это будет немного быстрее, чем в большинстве систем, если только что-то не происходит, например, 'IsSelected' является привязанным к данным и т. Д. –
Да @ReedCopsey, IsSelected связан с свойство выделения DataGrid. Может ли это быть причиной цикла времени? – Irfan