Linq, избежать двойного обращения
От: snaphold  
Дата: 30.01.25 16:42
Оценка:
Есть большой список List<B>
Есть класс А и есть 2 свойства среди прочих 15

int? Qty
string DeliveryResult


эти 2 свойства высчитываются из
Dictionary DeliveryList((id, personId), int qty)


в зависимости от результата поиска в словаре по ключу может быть 3 значения для DeliveryResult.

как можно заменить такое
var res = list<B>.Select(a => new A
         { Qty = DeliveryList[],
           DeliveryResult = GetDeliveryResult (key, DeliveryList[]),
          ...другие свойства
         }


на одно обращение к DeliveryList типа

var res = list<B>.Select(a => new A 
         { 
             var d = GetDelivery(key)        
           Qty = d.qty,
           DeliveryResult = d.DeliveryResult ,
          ...другие свойства
         }


Зы. Принципиально не делать автовычисляемое поле для DeliveryResult. Всю логику не стал постить, поэтому хочу понять как одно обращение к справочнику сделать
Отредактировано 30.01.2025 18:46 snaphold . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.