2011-03-03 43 views
1

有人可以向我解釋這是應該如何工作嗎?我遵循我在http://msdn.microsoft.com/en-us/library/234b841s.aspx找到的MSDN示例。C#List <T>用IComparer參數排序給出編譯錯誤

我已經制作了我自己的CustomObject併爲它做了一個比較器。

這裏是CustomObjectComparer類:

public class CustomObjectComparer : System.Collections.Generic.IComparer<CustomObject> 
{ 
    public int Compare(CustomObject co1, CustomObject co2) 
    { 
     //Impementation Omitted 
    } 

} 

後來,當我有一個List<CustomObject>並嘗試做我得到的編譯錯誤以下。

List<CustomObject> list = new List<CustomObject>(); 
CustomObjectComparer comparer = new CustomObjectComparer(); 
list.Sort(comparer); 

錯誤: Argument 1: cannot convert from 'CustomObjectComparer' to 'System.Collections.Generic.IComparer<CustomObject>'

是不是CustomObjectComparer一個System.Collections.Generic.IComparer

+0

你確定這是確切的錯誤? – SLaks 2011-03-03 16:47:52

+0

已編輯。謝謝SLaks。 – Atari2600 2011-03-03 17:05:22

回答

4

看起來你的列表包含 CustomObjectComparer s,而不是 CustomObject s。

您可以通過比較器,比較器可以比較 CustomObjectComparer,或(更可能)將列表更改爲 List<CustomObject>

編輯:如果有一個名爲CustomObject兩類這happend,或者如果你也有一個不同的錯誤。

+0

我同意SLaks。向我們顯示初始化「列表」變量的代碼。我相信這可能是你的問題 – randbrown 2011-03-03 16:50:54

+0

謝謝你們,我錯誤地複製了錯誤。我已經編輯爲正確的,並且還添加了「list」變量的初始化。 – Atari2600 2011-03-03 17:04:58

+0

嘿SLaks,那評論幫助了我。我試圖爲CustomObject創建一個SortableBindingList,並聲明它像'代碼'公共類CustomObjectSortableBindingList :BindingList 'code'當我刪除並嘗試,它編譯得很好。看起來像我需要一種不同的方法。謝謝你的幫助。 – Atari2600 2011-03-03 17:11:57