Есть большой список 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. Всю логику не стал постить, поэтому хочу понять как одно обращение к справочнику сделать
Здравствуйте, snaphold, Вы писали:
S>на одно обращение к DeliveryList типа
S>S>var res = list<B>.Select(a => new A
S> {
S> var d = GetDelivery(key)
S> Qty = d.qty,
S> DeliveryResult = d.DeliveryResult ,
S> ...другие свойства
S> }
S>
var res = list.Select(key =>
{
var d = GetDelivery(key);
return new A
{
Qty = d.Qty,
DeliveryResult = d.DeliveryResult ,
};
});
Здравствуйте, snaphold, Вы писали:
S>S>var res = list<B>.Select(a => new A
S> {
S> var d = GetDelivery(key)
S> Qty = d.qty,
S> DeliveryResult = d.DeliveryResult ,
S> ...другие свойства
S> }
S>
var res =
from l in list<B>
let d = GetDelivery(key)
select new A
{
Qty = d.qty,
DeliveryResult = d.DeliveryResult,
...
};
S>Зы. Принципиально не делать автовычисляемое поле для DeliveryResult. Всю логику не стал постить, поэтому хочу понять как одно обращение к справочнику сделать
Ничего не понятно, но ответ выше.
Здравствуйте, pilgrim_, Вы писали:
_>_> var res = list.Select(key =>
_> {
_> var d = GetDelivery(key);
_> return new A
_> {
_> Qty = d.Qty,
_> DeliveryResult = d.DeliveryResult ,
_> };
_> });
_>
Оно! Спасибо!