2016-10-20 4 views
-4

값의 순서를 모르더라도 값 (문자열)에 대해 OrderBy을 수행하는 방법이 있습니까? 값이 너무linq orderby 특정 문자열에 대해

firstPref='DATA', secondPref='RAT', thirdPref = 'XYZ'; 

같이 설정되면 것이 가능하므로 같은 데이터를 주문

string firstPref, secondPref, thirdPref; 

:

A, 
B, 
SAD DATA RAT, 
A, 
C, 
DATA, 
B, 
C, 
HAT, 
D, 
DATA HAT, 
E, 
SAD DATA, 

그리고 이러한 변수 :

이 데이터를 고려

DATA RAT 
RAT 
DATA RAT MAT 
HAT 
DATA HAT 
A 
B 
C 
DATA 
E 
+0

LINQ 당신이 '상자 밖으로'을 찾고있는 일을 할 수없는 않는 것이 아닙니다. –

+0

해당 논리에 대한 일반 정렬 함수를 작성할 수 있다면 가능한 경우 linq로 변환하는 데 도움을 줄 수 있습니다. –

+0

나는 인간으로서조차도 당신의 논리를 이해하지 못합니다. 어쩌면 당신이 자세히 설명해 준다면 코드에 넣는 것이 더 쉬울 것입니다. – nvoigt

답변

0

이것은 모두 사용하는 정렬 방법에 따라 다릅니다. 그것은 그 자체로 LINQ

string firstPref, secondPref, thirdPref; 
return list.OrderBy((a,b) => 
    a.StartsWith(firstPref) && b.StartsWith(firstPref) ? 
    ... : //and do all your compares to determine if one is before the other 
    a.CompareTo(b) 
);