オブジェクトのリスト TheListOfObjects があるとします。
これを書くと:
TheListOfObjects = TheListOfObjects.Take(40).ToList();
リストに 30 項目しかないとクラッシュしますか、それとも最初の 30 項目だけを返しますか? TheListOfObjects が空の場合、または null の場合は?
ありがとう。
オブジェクトのリスト TheListOfObjects があるとします。
これを書くと:
TheListOfObjects = TheListOfObjects.Take(40).ToList();
リストに 30 項目しかないとクラッシュしますか、それとも最初の 30 項目だけを返しますか? TheListOfObjects が空の場合、または null の場合は?
ありがとう。
これは、試してみるか、少なくともドキュメントを確認する必要がある場所の 1 つです。
リストに 30 項目しかないとクラッシュしますか、それとも最初の 30 項目だけを返しますか?
最初の 30 を返すだけです。
TheListOfObjects が空の場合
空のシーケンスを返します。
またはヌル?
になりArgumentNullException
ます。
MSDN から:
Take<TSource>
count 個の要素が生成されるか、 source に含まれる要素がなくなるまで、 source を列挙して要素を生成します。
count
がゼロ以下の場合はsource
列挙されず、空IEnumerable<TSource>
が返されます。
そして例外の下で:
Exception Condition
ArgumentNullException source is null
StackOverflow にログオンするまでに、MSDN をチェックして正式な回答を得るか (いくつかの軽度の不正確または部分的に不完全な回答が既に投稿され、ここで削除されていることに注意してください)、または Visual Studio を起動して車輪に油を注いでいた可能性があります。若干。
MSDN は次のように述べています。
Take(Of TSource) は source を列挙し、count 個の要素が生成されるか、source に含まれる要素がなくなるまで要素を生成します。
これを試して
TheListOfObjects = TheListOfObjects.Take(TheListOfObjects.Count > 30 ? 30 : TheListOfObjects.Count).ToList();
msdnから:
Take<T>
count 個の要素が生成されるか、 source に含まれる要素がなくなるまで、 source を列挙して要素を生成します。count が 0 以下の場合、source は列挙されず、空
IEnumerable<T>
が返されます。