我有類像下面LINQ列出<T>給出了一個錯誤
class Person
{
public string Name{get;set;}
public string Surname{get;set;}
public int Age{get; set;}
}
我有這樣
List<Person> persons = new List<Person>();
列表然後有一個方法
public Person SelectPerson(string name)
{
var q = from p in persons where p.Name==name select p;
return (Person)q;
}
但它給像這樣的錯誤
無法投射物體類型'WhereListIterator`1 [PrsLst.Person]'鍵入'PrsLst.Person'。
SO是什麼問題,你可以幫我解決它。
請注意,FirstOrDefault方法只取第一個項目,忽略任何後續項目,所以如果你有重複項目,它會簡單地選擇一個項目,而你不知道有什麼錯誤。另外,該方法的返回類型已經是'Person',所以它不需要任何投射。 – Guffa 2012-01-07 20:11:08
關於演員的好處,它已被刪除。至於FirstOrDefault的使用和檢查重複的必要性,我認爲你超出了問題的範圍。您對SelectPerson功能要求的假設是合理的,但並未由所述問題確認。 – 2012-01-09 00:30:55