2012-03-07 1 views
-1

나는 2 개의 열이있는 IP 테이블을 가지고있다 : IP와 % IP precent에 따라이 테이블을 정렬하는 가장 좋은 방법은 무엇입니까?표를 어떻게 정렬합니까?

enter image description here

테이블 유형 :

public List<string> statistics() 
{ 

} 
+0

목록 은 하나의 데이터 필드입니다. 한 개의 문자열에 2 개의 열을 어떻게 저장하고 있습니까? – hspain

+0

각 문자열에는'ipaddress {spaces} percent'가 포함되어 있습니까? –

+1

정보가 충분하지 않습니다. 열의 유형은 무엇입니까? SQL에서 오는 데이터입니까? Entity Framework를 사용하고 있습니까? 메모리 테이블에 있습니까? 탭으로 구분 된 텍스트에서 오는 것입니까? – JamieSee

답변

0

당신의 IpAddress 열을 가정은 문자열이고 (질문이 모호하기 때문에 많은 가정) 당신은 단지 비율의 내림차순으로 분류하는 열 값을 원하는 :

List<string> ips = IpTable.OrderByDescending(x=> x.Percentage) 
          .Select(x=> x.IpAddress) 
          .ToList(); 
0

문자열을 두 개의 열로 나눠야합니다. 두 번째 열을 숫자로 정렬 한 다음 해당 열을 순서대로 정렬합니다. 이 코드에서

 return from line in statistics 
       let split = line.Split('\t', '%') 
       let percentage = double.Parse(split[1]) 
       orderby percentage 
       select line; 

, 당신은 어떤 문자 (들) 당신이 당신의 각 줄에 있고 나뿐만 아니라 색인있어 열을 대체하여 분할 문자를 교체해야하지만, 나머지는 다음과 같이 작동합니다 너는 필요해.

+0

입력 한 후 내가이 줄을 입력 한 : 암시 적으로 'System.Collections.Generic.IEnumerable '을 System.Collections.Generic.List로 변환 할 수 없습니다. user979033

+0

원하는 경우 끝에 .ToList()를 추가하십시오. 결과를 목록에 지정합니다. :) – Ani

+0

.ToList() 이후에 같은 오류가 발생했습니다. – user979033

0

나는 당신의리스트에있는 모든 항목이 문자열 생각 - 그냥 무시하지 않을 경우 다음과 같은 ...

먼저 다른 형식으로이 구문 분석해야 - 이것이 사실 그러나 나는이 생각한다면 모른다 는 IP의와 퍼센트 사이의 탭 ('\의 t')는, 그래서 당신은

var stringTupleList = 
    myList.Select(s => s.Split('\t')) 
     .Select(ar => new { Ip = ar[0], PercentString = ar[1] }); 

이 당신에게 익명 형식의 목록을 제공하고 BrokenGlass 대답처럼 당신은 계속 같은 수행하여 시작할 수 :

var stringTupleList = 
    myList.Select(s => s.Split('\t')) 
     .Select(ar => new { Ip = ar[0], PercentString = ar[1] }) 
     .OrderByDescending(t => t.PercentString) 
     .Select(t => t.Ip) 
     .ToList(); 
+0

테이블 유형이 List user979033

+0

인 경우 테이블이 아니며 문자열 목록입니다. – BrokenGlass