2011-03-03 4 views
1

어떻게 작동하는지 어떻게 설명 할 수 있습니까? 나는 http://msdn.microsoft.com/en-us/library/234b841s.aspx에서 찾은 MSDN 예제를 따랐다.C# List <T> IComparer 인수로 정렬하면 컴파일 오류가 발생합니다.

나는 내 자신의 CustomObject를 만들었고 그것을 위해 Comparer를 만들었습니다. 나는 List<CustomObject>이 있고 내가 컴파일 오류를 얻을 다음을 수행하려고 할 때 다음

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

} 

: 여기

CustomObjectComparer 클래스입니다.

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>'

CustomObjectComparerSystem.Collections.Generic.IComparer 아닌가?

+0

정확한 오류입니까? – SLaks

+0

수정 됨. SLAKs에 감사드립니다. – Atari2600

답변

4

귀하의 목록에 CustomObjectComparer s ( CustomObject 초)가 아닌 것 같습니다.

CustomObjectComparer과 비교할 수있는 비교자를 전달하거나 목록을 List<CustomObject>으로 변경할 수 있습니다.

편집 : 당신은 또한 다른 오류가 있다면 이것은 당신이 CustomObject라는 이름의 두 가지 유형이있는 경우 무슨 일이 생긴, 또는 것입니다.

+0

SLAK에 동의합니다. "목록"변수를 초기화하는 코드를 보여주십시오. 나는 그것이 당신의 문제일지도 모른다라고 생각한다 – randbrown

+0

고마워, 나는 잘못 된 오류를 복사했다. 나는 올바른 것으로 편집하고 "list"변수의 초기화를 추가했습니다. – Atari2600

+0

안녕하세요 SLAKs, 그 의견은 나를 도왔습니다. CustomObject에 대한 SortableBindingList를 만들려고하는데'code'와 같이 선언 했었습니다. public class CustomObjectSortableBindingList : BindingList 'code' 내가 그것을 제거하고 시도했을 때 잘 컴파일되었습니다. 나는 다른 접근법이 필요해 보인다. 당신의 도움을 주셔서 감사합니다. – Atari2600

관련 문제