単一のアイテムを含むリストを返す MVC モデルがあります。私の見解では、このアイテムを参照する必要があります。ご覧のとおり、さまざまなオプションから選択できます。
Model.Item.ElementAt(0)
Model.Item.LastorDefault()
Model.Item.Last()
ビューでどの方法がより好ましいか、そしてその理由を誰かが提案できますか?
単一のアイテムを含むリストを返す MVC モデルがあります。私の見解では、このアイテムを参照する必要があります。ご覧のとおり、さまざまなオプションから選択できます。
Model.Item.ElementAt(0)
Model.Item.LastorDefault()
Model.Item.Last()
ビューでどの方法がより好ましいか、そしてその理由を誰かが提案できますか?
これらは単純に異なることを行います:
ElementAt(0) // returns the item at index 0, throws an exception if the list is empty
Last() // returns the last item in the list, throws an exception if the list is empty
LastOrDefault() // returns the last item in the list, or the default value for the list element type if the list is empty
リストに項目が 1 つだけあると主張しているので、Model.Items.Single() を使用することをお勧めします。リストに項目が 1 つだけ含まれていない場合、Single() は例外をスローします。
コレクションにアイテムが 1 つしかない場合は、 を使用しますSingleOrDefault()
。絶対にアイテムがあると確信している場合Single()
は、同様に行います。Single
の代わりに使用するFirst
と、処理時間が少し (無視できるほど) 長くなる可能性がありますが、コードは意図を明らかにし、明示的でフェイル セーフになります。
var whatYouWant = Model.Item.Single();
// Will throw an exception if there is no item or more than one