У вас есть вопрос, как лучше оптимизировать или ускорить процесс. В настоящее время мой код, кажется, работает немного медленно ...C# .net Декоратор шаблона преобразования/установки коллекции
У меня есть следующие классы
public class DataFoo : IFoo { }
public class Foo
{
internal IFoo UnderlyingDataObject{get;set;}
public Foo(IFoo f)
{
UnderlyingDataObject = f;
}
}
Теперь, во многих случаях, я в конечном итоге нужно или вызов метода, который будет предоставлять обратно список. Этот метод первоначально будет получить массив объектов DataFoo и перебрать все возвращаемые объекты инстанцирования нового объекта Foo, проходящий в DataFoo ... Вот пример ...
public List<Foo> GetListOfFoo(Guid id)
{
DataFoo[] q = GetArrayOfDataFoo(id);
List<Foo> rv = new List<Foo>();
for(var i = 0; i < q.Length; i++)
{
rv.Add(new Foo(q[i]));
}
return rv;
}
Вопрос заключается в том, что приходится перебирать и экземпляр вроде этого кажется довольно медленным. Мне было любопытно, есть ли у кого-нибудь предложения о том, как ускорить это ...
Профилируйте свой код, чтобы убедиться, что он работает медленно и b) этот код является узким местом? – ChrisF
Я преобразовываю код из существующей linq в sql-реализацию в этот подход, используя nhibernate/fluent nhibernate ... из того, что я вижу, сравнивая две версии; новый код работает медленнее. который медленнее, потому что nhibernate был введен или из-за всех циклов, которые происходят ... – Jason
Используйте профилировщик для проверки узких мест производительности - не догадки; они редко бывают там, где вы ожидаете. Я ожидаю, что изменение ORM-провайдера будет намного более значительным, чем производительность цикла. –