2012-01-21 9 views
0

データソースにバインドするリスト内の一定量のアイテムを選択する方法を知っていますか?基本的に私は10項目を取り戻しています(私はコントロールできません)。私は5を表示する必要があります。元々、ループを使用して5項目を新しいリストに追加することを考えていましたが、 。最初の5つを選択するための式はありますか?リストからデータソースに一定量のアイテムをバインドする最短の方法はありますか?

//Returns a List<DataItem> 
MyDataListControl.DataSource = Helper.GetDataItems(); //<= Possible expression? 

答えて

1

あなたはSkipTake LINQの拡張メソッドを見てみましょうことがあります。

MyDataListControl.DataSource = Helper.GetDataItems().Take(5).ToList(); 
1

ListさんについてGetRange方法:だからあなたの場合には、いくつかのIEnumerable<T>の唯一の最初の5つの要素を取るしたい場合は?あなたはそれを試しましたか?私はこのメソッドの内部動作ではありません。新しいリストを作成するかどうかは関係ありません。

GetRange(int index, int count) 

ここではmsdn linkです。

+0

私はちょうどチェックし、メソッドの効率はO(n)です。ここでnはあなたのケースであなたが望む要素の数です:5.あなたは 'それはたくさんのコードのようです。あまり時間の効率を心配しないで、このメソッドはあなたのコードを減らす – nbz

1

これは、内部的に起こらない限り、新しいリストをインスタンス化する必要がないので、RemoveRangeがおそらく最も良いでしょう。常に10項目を取得しているか、潜在的にArgumentOutOfRangeExceptionを取得している可能性があります。

最初の5つの項目が残っています。

関連する問題