11

オブジェクトのリスト TheListOfObjects があるとします。

これを書くと:

TheListOfObjects = TheListOfObjects.Take(40).ToList();

リストに 30 項目しかないとクラッシュしますか、それとも最初の 30 項目だけを返しますか? TheListOfObjects が空の場合、または null の場合は?

ありがとう。

4

4 に答える 4

28

これは、試してみるか、少なくともドキュメントを確認する必要がある場所の 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 を起動して車輪に油を注いでいた可能性があります。若干。

于 2012-04-09T13:40:59.753 に答える
3

MSDN は次のように述べています。

Take(Of TSource) は source を列挙し、count 個の要素が生成されるか、source に含まれる要素がなくなるまで要素を生成します。

于 2012-04-09T13:40:42.327 に答える
2

これを試して

TheListOfObjects = TheListOfObjects.Take(TheListOfObjects.Count > 30 ? 30 : TheListOfObjects.Count).ToList();
于 2015-11-17T16:20:33.337 に答える
2

msdnから:

Take<T> count 個の要素が生成されるか、 source に含まれる要素がなくなるまで、 source を列挙して要素を生成します。

count が 0 以下の場合、source は列挙されず、空IEnumerable<T>が返されます。

于 2012-04-09T13:41:12.883 に答える