Linqには、条件に一致する最初に選択されたオカレンスの値を設定する方法はありますか?Linq Select:最初のオカレンスに特定の値を設定する
は、私はこれも説明していないよ知っているが、例えば:
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の1つ(最も早い)の出現をmySelectedObjects
に入れたいだけです。 ThisIsTheFirstTrue
を何に置き換える必要がありますか?
編集
私はこれを実現するには、選択した後for
ループで行うことができますが、私は選択の中にそれをすべて行うことを期待しています。
とにかく、提案に応じて明確にすること。入力データがある場合、私は、私は、出力が
になりたいfalse
true
false
true
true
false
...例えばそれは、入力中に本当の最初の発生のための真になりたいだけではなく、最初に出現したので、
false
true
false
false
false
false
- 他の二つの 'true'の値が出力に行ってなぜですか? –
@ SergeyBerezovskiy - それは私がやろうとしていることの要件です。 (この場合、ブール値はXAMLフォームの 'Visibility'属性にバインドされ、毎回1つの項目しか表示しません) – colmde
この機能はSelectで実装する必要がありますか、それとも一般的なLinqベースのアプローチで十分ですか? – TheJP