我正在使用Linq來獲取選擇列表項的唯一成員。如何返回這個列表... 我有什麼,現在是獲取不同的SelectListItem
var queryResult = PatientList.Select(c => c).Distinct();
PatientList = (List<SelectListItem>)queryResult;
我收到第二行鑄造錯誤。一個積極進取的年輕開發人員應該做什麼?
我正在使用Linq來獲取選擇列表項的唯一成員。如何返回這個列表... 我有什麼,現在是獲取不同的SelectListItem
var queryResult = PatientList.Select(c => c).Distinct();
PatientList = (List<SelectListItem>)queryResult;
我收到第二行鑄造錯誤。一個積極進取的年輕開發人員應該做什麼?
嘗試
PatientList = queryResult.ToList();
您版本使用的鑄造,在這種情況下是不可能的,因爲查詢結果是不是列表。 ToList
基於它被調用的枚舉構造一個新列表。它確實是這樣的:
public static List<T> ToList<T>(this IEnumerable<T> collection)
{
return new List<T>(collection);
}
您必須確保,很明顯,這PatientList
元素SelectListItem
類型,並注意Distinct()
將返回不同的對象,而與不同領域的項目。也就是說,如果在PatientList
中有兩個獨立構造的項目,其中Selected
,Text
和Value
屬性相等,但由於調用Distinct()
,您仍然有兩個項目。
此外,使用Select(c => c)
的原因是什麼?它有效地注意到。
我不知道是什麼類型的項目在你的清單,但你已經張貼你可以將列表
List<int> ages = new List<int> { 21, 46, 46, 55, 17, 21, 55, 55 };
IEnumerable<int> distinctAges = ages.Distinct();
添加.ToList()
如果你需要將其轉換爲一個列表
Distinct()
我是Linq noob。我發現這是非常有用的,被說。 當我刪除它,我得到一個編譯器錯誤。 – SoftwareSavant
看起來好像我沒有得到不同的SelectListItems – SoftwareSavant