_db.InstellingAdressens
.Where(l => l.GEMEENTE.Contains(gem_query))
.OrderBy(q => q.GEMEENTE)
.Select(q => q.GEMEENTE)
.Distinct();
這是查詢。它返回一個List<string>
,但字符串根本沒有排序。爲什麼OrderBy
不起作用?以及如何解決它?LINQ查詢OrderBy不起作用
_db.InstellingAdressens
.Where(l => l.GEMEENTE.Contains(gem_query))
.OrderBy(q => q.GEMEENTE)
.Select(q => q.GEMEENTE)
.Distinct();
這是查詢。它返回一個List<string>
,但字符串根本沒有排序。爲什麼OrderBy
不起作用?以及如何解決它?LINQ查詢OrderBy不起作用
嘗試把排序依據你的通話結束的順序。
_db.InstellingAdressens.
Where(l => l.GEMEENTE.Contains(gem_query)).
Select(q=>q.GEMEENTE).Distinct().
OrderBy(q=>q).ToList();
更改來電
_db.InstellingAdressens.Where(l => l.GEMEENTE.Contains(gem_query)).Select(q=>q.GEMEENTE).Distinct().OrderBy(q=>q.GEMEENTE).ToList();
這是不正確的。你不能在選擇後用q => q.gemeente來使用orderby。 – Stefanvds 2010-09-10 09:24:38
試試這個只是把去年的OrderBy查詢
_db.InstellingAdressens
.Where(l => l.GEMEENTE.Contains(gem_query))
.Select(q=>q.GEMEENTE)
.Distinct()
.OrderBy(q=>q.GEMEENTE).ToList();
Distinct
的並不知道您已訂購您的項目它得到他們之前,所以它不能使用這些知識。因此,它必須假定這些項目是無序的,並且因此只會按照他們想要的來做。
一個典型的實現將使用一個散列表,它不是按照你通常想要排序的項排序的,所以獨立操作的結果是一個無序集。
正如其他人所建議的那樣,改變呼叫的順序以最後完成順序,並且應該得到你想要的。
感謝您的解釋爲什麼。現在非常有幫助和邏輯,爲什麼這不起作用。 – Stefanvds 2010-09-10 09:25:30
這是唯一正確的答案:) – Stefanvds 2010-09-10 09:30:30