私は非常に単純なエンティティのリストを持っています。これは、null可能なDateTimeプロパティを持っています。例: 述語と一致する最初の項目、または一致しない場合は最初の項目を返すにはどうすればよいですか?
私は どちらか日はあなたが言葉に好きな方法で、「最古」、または最も過去に、またはDateTime.Minに最も近いリストにFirst()
項目を返すしたい
class MyEntity
{
int Id{ get;set; }
string Category { get; set; }
DateTime? Date{ get; set ; }
}
var myentities = new List<MyEntity>(..);
それ、またはの場合の日付が設定されている場合は、最初の項目を取得します。
これは二つの文で行うことができます。
var myEntity = myentities
.Where(me => me.Date != null)
.OrderBy(me => me.Date)
.FirstOrDefault();
if (myEntity == null)
myEntity = myentities.First();
しかし、単一のステートメントでこれを行う方法はありますか?
私はそれをすべてを記述することなく、エンティティのアイデアを与えるためにだけ迅速擬似コード厥NULL可能DateTimeプロパティ – sll
を見つけることができません。 "DateTime?Date"を表示するように編集しました – BlueChippy
myentities.Where(me => me.Date!= null).OrderBy(me => me.Date).FirstOrDefault()?? myentities.First() '単一のステートメントではなく、単一行:D – Stefan