這裏是我在嘗試獲取項目的不同列表...使用Linq列表時沒有得到不同的項目?
var queryResults = PatientList.Distinct();
PatientList = queryResults.ToList<SelectListItem>();
出於某種原因,我不及彼明顯的列表。
這裏是我在嘗試獲取項目的不同列表...使用Linq列表時沒有得到不同的項目?
var queryResults = PatientList.Distinct();
PatientList = queryResults.ToList<SelectListItem>();
出於某種原因,我不及彼明顯的列表。
使用
var queryResults = PatientList.GroupBy(x=>x.Id).Select(x=>x.FirstOrDefault())
PatientList = queryResults.ToList<SelectListItem>();
你總是可以嘗試
PatientList = PatientList.GroupBy(x=>x.Id).Select(x=>x.FirstOrDefault()).ToList<SelectListItem>();
它會給你基於關閉不同的結果,不管你按
退房http://blog.jordanterrell.com/post/LINQ-Distinct()-does-not-work-as-expected.aspx
方法yadda yadda的類型實參不能從用法推斷。嘗試明確指定類型參數。 – SoftwareSavant
@DmainEvent,將x.Id更改爲您需要將所有內容分組的所有內容。不確定你的評論是什麼意思,哪個論點不能被推斷? – Gage
抱歉。我現在正在使用另一臺計算機來處理這個消息,而不是那個有代碼的計算機(今天早上小懶惰:-))。但我確實把它改成了正確的值......不知道它爲什麼不起作用。 – SoftwareSavant
不知道你的PatientList包含什麼樣的項目,但我想你必須在你的自定義對象上實現IEquatable。
此之前,這裏已經aswered: Distinct not working with LINQ to Objects
如果您在對象中實現它這將是IEquatable,而不是IEqualityComparer ... –
它實際上是SelectListItem的列表 – SoftwareSavant
'IEquatable
你SelectListItem
類需要重寫Equals
和GetHashCode
(和選擇實現IEquatable<SelectListItem>
)。否則,具有相同值的不同實例將被視爲不同。
另一種選擇是執行IEqualityComparer<SelectListItem>
並將其作爲第二個參數傳遞給Distinct
。
可能的重複[獨特不使用LINQ到對象](http://stackoverflow.com/questions/1365748/distinct-not-working-with-linq-to-objects) – dlev