2010-12-10 3 views
0

질문은 Generic.List (Of T)의 기본 제공 정렬이 가능한지 여부입니다. 우리는 클래스의 컴파일 된 DLL과 함께 자체 DLL로 컴파일되는 사용자 정의 gridview 있습니다. 지금 당장 페이징 목적으로 Generic.List를 iCollection으로 캐스팅하여 카운트를 얻을 수 있지만 Generic.List (Of AnyType)를 받아 들여 그에 따라 정렬 할 Sort 함수를 만들 수 있습니까?ASP.NET : Generic.List (Of T)의 기본 제공 Gridview 정렬

Generic.List (Of AnyType)를 Generic.List (Of Of Object)에 캐스팅 할 수 있었으며 그 컬렉션 내의 객체를 같은 유형 및 정렬로 캐스팅 할 수 있다고 생각하지만, 그게 가능한지 확실하지 않습니다. 이제는 클래스가 컴파일 된 상태에 있기 때문에 개체를 원래 형식으로 다시 캐스팅 할 수 없다는 것이 내 관심사이다.

안전한 가정인가요? 가능합니까? 단순히 일반 목록에 대한 컨트롤 정렬을 건너 뛰고 개발자가 LINQ 또는 다른 방법을 통해 이벤트에서 정렬을 수행하도록 허용하는 것이 더 유리한가?

답변

0

일반 목록은 이미 정렬이 (그리고 ICollection은 구현하기 때문에 너무 카운트)

public void Sort(); 
    public void Sort(IComparer<T> comparer); 
    public void Sort(int index, int count, IComparer<T> comparer); 
    public void Sort(Comparison<T> comparison); 

왜 그들을 사용하지?

public class SomeGridViewWrapper<T> 
{ 
    private List<T> _dataSource; 

    public void Sort(Comparison<T> comparison) 
    { 
     _dataSource.Sort(comparison); 
    } 
} 
+0

정확하지만 Gridview 컨트롤 측에서 알 수없는 유형으로 변환해야합니다. 나는 보통 그것을 Object로 던지지만, 문제는 그것을 다시 던지려고합니다. – jlrolin

+0

코드 예제를 보여줄 수 있습니까? – CRice

+0

그럼 GridView 클래스를 SomeGridViewWrapper와 같이 일반적으로 만드는 것이 좋을 것입니다. 그러면 객체로 처리 할 필요가 없습니다. – CRice