我有一個這樣的名單:如何使用LINQ做SELECT UNIQUE?
Red
Red
Brown
Yellow
Green
Green
Brown
Red
Orange
我試圖做一個選擇唯一使用LINQ,即我想
Red
Brown
Yellow
Green
Orange
var uniqueColors = from dbo in database.MainTable
where dbo.Property == true
select dbo.Color.Name;
然後我把它改爲
var uniqueColors = from dbo in database.MainTable
where dbo.Property == true
select dbo.Color.Name.Distinct();
與沒有成功。第一個select
獲取所有顏色,那麼如何修改它以僅獲取唯一值?
如果有更好的方法來構造這個查詢,那麼很高興去那條路線。
我該如何去編輯它,這樣我就可以擁有.OrderBy(「列名稱」),即按字母順序按顏色名稱,所以名稱屬性?
我不斷收到一條消息:
類型參數不能從使用推斷。嘗試明確指定類型參數。
謝謝,這是正確的答案。有人可以解釋.OrderBy()參數中的內容。你有名字=>名字。這個名字來自數據庫中的列名嗎?因爲我們有'dbo.Color.Name'然後只是'name => name'這暗示我不是列名?奇怪它也正確排序,如果我只是將其更改爲'.OrderBy(a => a)' – baron 2010-08-19 23:29:22
變量的名稱是不相關的。它只是{傳入函數的對象} => {用於排序的對象}。由於我們已經完成了Select,因此集合中唯一被排序的是名稱。 – 2010-08-20 11:35:53
謝謝@JamesCurran,你的解決方案對我非常有幫助。 – Ron 2013-04-04 17:11:14