我有一個函數,它將IList<string> someVariable
作爲參數。我想將其轉換爲列表,以便我可以按字母順序對值進行排序。將IList <string>轉換爲列表<string>()
我該如何做到這一點?
我有一個函數,它將IList<string> someVariable
作爲參數。我想將其轉換爲列表,以便我可以按字母順序對值進行排序。將IList <string>轉換爲列表<string>()
我該如何做到這一點?
你可以做
var list = new List<string>(myIList);
list.Sort();
或
var list = myIList as List<string>;
if (list != null) list.Sort; // ...
僅僅因爲給定的'IList
也許我並沒有100%清楚 - 這是沒有錯的,它只是在這種情況下不工作(排序不會被稱爲) - 但謝謝你的提示 - 我想這裏有足夠的例子來選擇一個: ) – Carsten
*在這種情況下*不起作用*沒有錯誤? 「IList
的IList實現IEnumerable。使用.ToList()方法。
var newList = myIList.ToList();
newList.Sort();
我想你需要在'.ToList'之前調用'.Cast <>' – 2011-09-01 13:18:34
IList<string> someVariable = GetIList();
List<string> list = someVariable.OrderBy(x => x).ToList();
您可以使用LINQ排序的IList<string>
像這樣:
IList<string> foo = .... ; // something
var result = foo.OrderBy(x => x);
您不必轉換到一個列表的事情進行排序。您的排序方法是否需要列表,但不接受IList?我會認爲這是實際的問題。
此外,如果你確實需要一個List,如果你的IList realy是一個List(有點可能),你可以這樣解釋它。所以我會首先檢查它是否已經是一個列表,然後再創建一個新列表
var concreteList = parameter as List<T> ?? parameter.ToList();
實際上您是否需要對列表進行排序,或者只是按特定順序對它進行迭代? – R0MANARMY