2013-08-13 7 views
-1

다음 데이터를 가지고 있습니다 : textbox. 시간순으로 내림차순으로 정렬하고 싶습니다. 사전을 사용해 보았지만 중복 값을 삽입 할 수 없습니다. 어떤 아이디어? 즉 당신의 ID 값이 명확 고유 키 값이 아니기 때문에 당신이 여기에 원하는되지 않도록정렬 데이터 내림차순

ID  time        ID  time 
4  10        15  19  
12  13  WANT SORTED BY TIME  12  13 
15  19  ---->>     12  13 
4  10        4   10 
12  13        4   10 
+1

데이터가 텍스트 상자에 도착하기 전에 오는 데이터는 어디입니까? ? 데이터베이스 쿼리? 어떤 물건? – RQDQ

+0

사전에 중복 키를 포함 할 수 없기 때문에 대체를 조회라고합니다. http://msdn.microsoft.com/en-us/library/bb460184.aspx – phillip

+0

간단한 솔루션을 사용하여 목록을 작성하고 직접 IComparer를 구현할 수 있습니다. –

답변

6

사전은 중복 키를 허용하지 않습니다.

데이터를 저장할 클래스를 만든 다음 그것을 정렬 할 Linq에의 OrderByDescending을 사용

public class MyTimeData { 
    public int ID { get; set; } 
    public int Time { get; set; } 
} 

var list = new List<MyTimeData>(); 
// Add items to the list 
list = list.OrderByDescending(d => d.Time).ToList(); 
+0

다른 폼의 클래스에 값을 추가하려면 어떻게합니까? 나는 초보자입니다 – Apollo

+0

리스트 tmp = new리스트 (); tmp.add (새 MyTimeData {Id = 1, Time = DateTime.Now}); – lordkain

+3

@Apollo - 프로그램하는 법을 배우는 것이 목표라면 실제로 약간의 노력을 기울여야합니다. – mbeckish

0
yourList.OrderByDescending(x => x.Time); 
+0

나는 정렬하는 법을 안다. 하나의 목록을 정렬하면, 다른 하나를 정렬하지 않을 것이다. – Apollo

+0

"다른"이 같은 대상의 일부라고 말할 때? ".ThenByDescending (x => x.ID)"를 호출하여 체인을 연결할 수 있습니다. – Konstantin

0

또 다른 옵션을, LINQ 당신이에 관심이있는 뭔가를 사용할 수 없거나 경우 SortedList 데이터 구조입니다 (오름차순으로 내림차순으로 내림차순으로 정렬 할 수 있습니다.) 다음과 같이 사용할 수 있습니다.

public class MyTimeData { 
    public int ID { get; set; } 
    public int Time { get; set; } 
} 

var list = new SortedList<MyTimeData>(); 

// Add items to sorted list 

// Reverse to make it descending 
var listDescending = list.Reverse(); 

foreach (var item in listDescending) 
{ 
    // Do something with item 
} 
관련 문제