[解決済み] LINQを使用して、プロパティ値の最小または最大値を持つオブジェクトを選択する方法
2022-03-18 18:43:34
質問
Nullable DateOfBirthプロパティを持つPersonオブジェクトを持っています。 LINQ を使用して Person オブジェクトのリストを照会し、最も古い/最も小さい DateOfBirth 値を持つオブジェクトを取得する方法はありますか?
まず、こんな感じです。
var firstBornDate = People.Min(p => p.DateOfBirth.GetValueOrDefault(DateTime.MaxValue));
Null DateOfBirth値は、Minの検討対象から除外するためにDateTime.MaxValueに設定されます(少なくとも1つは指定のDOBを持っていると仮定します)。
しかし、私の場合は、firstBornDate を DateTime 値に設定するだけです。 私が取得したいのは、それに一致するPersonオブジェクトです。 このように、2つ目のクエリを書く必要があるでしょうか。
var firstBorn = People.Single(p=> (p.DateOfBirth ?? DateTime.MaxValue) == firstBornDate);
それとも、もっと無駄のないやり方があるのでしょうか?
どのように解決するのですか?
People.Aggregate((curMin, x) => (curMin == null || (x.DateOfBirth ?? DateTime.MaxValue) <
curMin.DateOfBirth ? x : curMin))
関連
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み] LINQで「not in」クエリはどうやるの?
-
[解決済み] LINQ: フィルタリング基準で SingleOrDefault と FirstOrDefault() を使用する場合
-
[解決済み] List<T>をオブジェクトのプロパティでソートする方法
-
[解決済み] LINQで.Firstと.FirstOrDefaultを使用するタイミングは?
-
[解決済み】LINQ:新しいオブジェクトを作成せずに、オブジェクトを選択し、いくつかのプロパティを変更します。
-
[解決済み] LINQで辞書<T1, T2>を選択する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Excel "外部テーブルが期待された形式ではありません。"
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み] ...基礎となる接続は閉じられました。予期しないエラーが受信で発生しました
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み】コレクション内の全オブジェクトのプロパティに対して.Max()を実行し、最大値を持つオブジェクトを返す方法【重複】。