3

列挙可能なオブジェクトで ?.First() を使用しようとすると、オブジェクトにアイテムが含まれていない場合、「シーケンスに要素が含まれていません」というエラーがスローされます。

解決策は .FirstOrDefault() を使用することだと認識していますが、最初の努力がうまくいかない理由がわかりません。私は何かを誤解していますか、それとも単に「それらの1つ」ですか?

4

5 に答える 5

3

MSDN のドキュメントによると:

    int? length = customers?.Length; // null if customers is null   
    Customer first = customers?[0];  // null if customers is null  
    int? count = customers?[0]?.Orders?.Count();  // null if customers, the first         customer, or Orders is null  

したがって、コレクションが null でない場合、ランタイムは最初の要素を返そうとします。コレクションが空で、 FirstOrDefaultを使用していないため、例外がスローされます。

リンク: https://msdn.microsoft.com/en-us/library/dn986595.aspx

于 2016-12-20T17:26:34.197 に答える