Мне нужно связать несколько сущностей. В настоящий момент код загружается первым сущностью, а затем повторяется с циклом foreach и выполняется поиск по каждой записи, если текущая строка соответствует свойству записи другого объекта. Что-то вроде:Лучшая производительность для поиска объектов в объектах и объектах нагрузки, Foreach или где с LinQ ON C#?
foreach (Entity1 e1 in entity1List)
{
foreach (Entity2 e2 in entity2List)
{
if (e2.Id == e1.Id)
{
//Do something
}
}
}
Но объекты имеют много записей и производительность не является хорошим. Я хочу улучшить скорость, пытаясь использовать linQ для поиска записи.
var list = entity2List.Where (e2 => entity1.Any (e1 => e1.Id == e2.Id));
foreach (Entity2 e2 in list)
{
//Do something
}
Но я не знаю, действительно ли это помогает в производительности. Также я хотел бы знать лучшую модель для загрузки объектов в этом случае. Некоторые советы или ссылки для чтения или инструменты для сравнения времени исполнения, пожалуйста.
Я использую много соединений для загрузчиков каждой сущности, но они разделены, потому что при тестировании в других случаях строки много, и время от выполнения запроса в БД было слишком много, поэтому теперь объекты независимы, и я хочу создать зависимость по коду.
вы всегда могли профиль как и выяснить. (Подсказка: загрузка меньшего количества записей, чем большие записи, всегда приведет к чистым выигрышам). –
По какой причине вы не используете соединение? –
И переключитесь с списка на HashSet или используйте словарь. Перемещение из списка в Hash/Dict будет существенно ускорять все поисковые запросы. –