Обновить / обрезать значение в лямбда-выражении - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть лямбда-выражение, которое фильтрует список клиентов на основе переданного идентификатора. Это работает нормально, однако я хочу удалить метку времени из поля CreationDate при возврате записей.Есть ли способ сделать это в выражении Lambda?

Итак, это мое выражение Lambda, которое возвращает мои записи о клиентах:

customers = customers.Where(c => c.Business_Type == businessType);

Однако я хотел бы сделать что-то вроде следующего:

customers = customers.Where(c => c.Business_Type == businessType, c.CreationDate=c.CreationDate.Value.ToShortDateString());

1 Ответ

4 голосов
/ 17 февраля 2012

LINQ не предназначен для выполнения мутации элементов последовательности.Просто возьмите возвращаемое значение Where и используйте foreach для выполнения мутации, что является идиоматическим способом справиться с этим:

var customers = customers.Where(c => c.Business_Type == businessType).ToArray();
foreach(var c in customers)
{
    c.CreationDate = c.CreationDate.Value.ToShortDateString();
}
...