-1

単一のアイテムを含むリストを返す MVC モデルがあります。私の見解では、このアイテムを参照する必要があります。ご覧のとおり、さまざまなオプションから選択できます。

Model.Item.ElementAt(0)
Model.Item.LastorDefault()
Model.Item.Last()

ビューでどの方法がより好ましいか、そしてその理由を誰かが提案できますか?

4

2 に答える 2

2

これらは単純に異なることを行います:

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() は例外をスローします。

于 2013-06-30T19:47:50.187 に答える
2

コレクションにアイテムが 1 つしかない場合は、 を使用しますSingleOrDefault()。絶対にアイテムがあると確信している場合Single()は、同様に行います。Singleの代わりに使用するFirstと、処理時間が少し (無視できるほど) 長くなる可能性がありますが、コードは意図を明らかにし、明示的でフェイル セーフになります。

var whatYouWant = Model.Item.Single();
// Will throw an exception if there is no item or more than one
于 2013-06-30T19:47:51.170 に答える