2011-09-16 70 views
1

OrderByDescending如何使用?C#OrderByDescending

我有一個標籤,圓,聲明如下

ReadOnlyCollection<FlangeCircle> Circles 

它含有variabel double類型

我想基礎上,diamter對它們進行排序的,直徑所以我儘量

FlangeCircle<FlangeCircle> query = Circles.OrderByDescending(p => p.Diameter); 

但是這不會通過編譯器,但下面的確如此:

var query = Circles.OrderByDescending(p => p.Diameter); 

這是爲什麼,我該如何用「正確」類型聲明查詢?

/斯特凡

+2

我想象的類型是'的IEnumerable ''不FlangeCircle '**編輯:**居然只記得它可能'IOrderedEnumerable ' – Manatherin

+2

你也可以將鼠標放在var關鍵字上(如果你使用visual studio),它應該告訴你編譯器將它分配給的類型 – Manatherin

+0

@Manatherin:你可能想把它作爲答案; – fjdumont

回答

6

變量類型的的問題是:

FlangeCircle<FlangeCircle> query = ... 

FlangeCircle<FlangeCircle>沒有意義的類型,當然不是OrderByDescending返回的結果。你幾乎肯定希望:

IEnumerable<FlangeCircle> query = Circles.OrderByDescending(p => p.Diameter); 

或者,如果你希望能夠在query執行ThenBy/ThenByDescending operatorions:

IOrderedEnumerable<FlangeCircle> query = ...; 
+0

現在感謝它的工作 –

1

這將返回一個IEnumerable,所以:

IEnumerable<FlangeCircle> query = Circles.OrderByDescending(p => p.Diameter); 
0

不應由IEnumerable的變量?在

IEnumerable<FlangeCircle> query = Circles.OrderByDescending(p => p.Diameter); 
0

嘗試使用IEnumerable<FlangeCircle> query = ...

相關問題