2012-08-22 5 views
0

이 같은 기록 클래스가 있습니다정렬 목록

public class RecordInfo 
{ 
    public String CDate; 
    public String Patient_ID; 
    public Color Zone; 
    public String Fname; 
    public String Lname; 
    public Int64 ImgSize; 
    public String ImagePrefix; 
    public String ImagePath; 
    public String Sex; 
    public String TZ; 
} 

을하고이 같은 RecordInfo의 목록을 만든 :

List<RecordInfo> PatientRecords = new List<RecordInfo>(); 

을하고 나는 그것을 레코드를 추가,하지만 난 것 성, Fname 등을 기준으로 그 목록을 정렬하고 싶습니다. .....

어떻게하면됩니까? LINQ는 새에 하나의 시퀀스를 프로젝트 쿼리를 기반으로, 오히려 -

// Note change from Patient_ID to PatientId for naming conventions. 
List<RecordInfo> sorted = records.OrderBy(x => x.PatientId).ToList(); 
새로운 목록을 생성합니다

:

답변

3

물론이 LINQ 쉽게 OrderBy, OrderByDescending, ThenByThenByDescending를 사용한다 기존 목록을 돌연변이시키는 것보다

또는 사용자 지정 비교자를 사용하여 List<T>.Sort을 사용하여 적절한 위치에서 정렬 할 수 있습니다.

아무튼 공용 필드 대신 속성을 사용하고 .NET 명명 규칙을 따르는 것이 좋습니다.

+0

레코드는 무엇을 참조합니까? PatientRecords로 교체하려고 했으므로 작동하지 않았습니다. –

+1

@ R.Vector,'작동하지 않았습니다 '? 영어로 '작동하지 않았다'라고 번역 할 수 있습니까? 소프트웨어 개발자가 아닌 소프트웨어 사용자. –

+0

그래, 그것은 말합니다 : 이름 '레코드'는 현재의 컨텍스트에 존재하지 않습니다. –