2012-01-21 35 views
0

任何人都知道如何在列表中選擇一定數量的項目來綁定到數據源?基本上我回來了10個項目(我沒有控制),我只需要顯示5.原來我正在考慮使用一個循環,並添加5個項目到一個新的列表,但這似乎很多代碼。有沒有一種表達方式可以用來選擇前5個?將列表中的某些項目綁定到數據源的最短途徑?

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

回答

1

你可以看看的SkipTake LINQ擴展方法。所以你的情況,如果你想只需要一些IEnumerable<T>第5個元素:

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

什麼ListGetRange方法?你嘗試過嗎?我不是該方法的內部運作方式;無論它是否也創建新的列表。

GetRange(int index, int count) 

這是msdn link它。

+0

我剛剛檢查過,方法的效率是O(n),其中n是count:你想要的元素的數量,在你的案例5中。但是因爲你說'看起來好像很多代碼',而你不太擔心時間效率,那麼這種方法會減少你的代碼 – nbz

1

RemoveRange可能是最好的,因爲你不必實例化一個新列表,除非在內部無論如何。只要確保你總是得到10個項目,否則你可能會得到一個ArgumentOutOfRangeException。

list.RemoveRange(5, 5); 

這應該留給你前五項。

相關問題