文字列を辞書順(アルファベット順)に並べ替える以下のC#コードがあります。文字列を辞書順に並べ替えるときに 'n'要素を無視/スキップする方法
string str = "ACGGACGAACT";
IEnumerable<string> sortedSubstrings =
Enumerable.Range(0, str.Length)
.Select(i => str.Substring(i))
.OrderBy(s => s);
結果:
0 AACT
1 ACGAACT
2 ACGGACGAACT
3 ACT
4 CGAACT
5 CGGACGAACT
6 CT
7 GAACT
8 GACGAACT
9 GACGAACT
10 T
は、しかし、私は辞書式ソートが上記のいずれかに異なるものになります。この場合には辞書式ソート処理
中に3番目と4番目の文字をスキップして、この種を強化したいです。
結果: 0 AA [CT
1 AC [T
2 AC [GG] ACGAACT
3 AC [GA] ACT
4 CG [GA] CGAACT
5 CG [AA] CT
6 CT
7 GA [CG] AACT
8 GA [AC] T
9 GG [AC] GAACT
10 T
どうすればいいですか?