2016-10-20 22 views
-4

値の順序を知らずに値(文字列)に対してOrderByを実行する方法はありますか?特定の文字列に対してlinq orderby

は、このデータを検討してください。

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

そして、これらの変数:

string firstPref, secondPref, thirdPref; 

値はそれほど

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

のように設定されているので、同様のデータを注文することが可能です:

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) 
); 
関連する問題