Есть ли способ в Linq установить значение для первого выбранного вхождения, соответствующее условию?Linq Выбрать: Установить только определенное значение для первого вхождения
Я знаю, что я не объяснить это хорошо, но, к примеру:
var mySelectedObjects = allMyObjects.OrderBy(o.Date).Select(o => new ObjectType
{
Element1 = o.Element1,
Element2 = o.Element2,
Date = o.Date,
BooleanElement = o.BooleanElement && ThisIsTheFirstTrue
};
Таким образом, в приведенном выше примере, желаемый результат вывода является то, что в mySelectedObjects
пункт будет единственно верным для первой происхождение allMyObjects
(упорядочено по Date
), где это правда, а все остальные будут ложными независимо от их значений в allMyObjects
.
Т.е. я хочу только одно (самое раннее) возникновение с = true в mySelectedObjects
. Что я должен заменить ThisIsTheFirstTrue
?
Редактировать
Я понимаю, что это может быть сделано с помощью for
петли после того выбора, но я надеюсь, что все это сделать в Select.
В любом случае, просто уточнить в ответ на предложения. Я хочу, чтобы это было правдой для первого вхождения, где это правда на входе, а не только первое вхождение, например, если входные данные ...
false
true
false
true
true
false
Я хочу выход быть
false
true
false
false
false
false
Для правки - почему другие значения два 'true' пошли на выходе? –
@ Сергий Березовский - это требование того, что я пытаюсь сделать. (В этом случае логическое значение привязано к атрибуту «Видимость» в форме XAML, и я хочу отображать только один элемент каждый раз) – colmde
Должна ли эта функциональность быть реализована в стандарте Select или является общим основанием Linq? – TheJP