文字列の並べ替えに対応してください。C#LINQ条件付き整数のOrderBy文字列
私は、Oracleデータベースのselect文の結果を含むListを持っています。一般的には、次のようになります。
"9",
"10 k. 1 str. 1",
"10 k. 2 str. 1",
"11 k.1",
"12",
"12 k.1 str. 2"
しかし、もちろんそうではありません。
私は、次のようなLINQクエリを使用して、それを並べ替えることができます。
var oLst = lst.OrderBy(x => int.Parse(x.Split(' ')[0])).ToList();
そしてそれは、このリストをソートするが、唯一の最初の整数で。私がしたいのは、x.Split(' ')[2]
という文字列要素の存在に基づいて、ある種の「条件付きThenBy()」ソートですが、どうやってそれを行うのか分かりません。私が望むのは、最初に文字列の "最初の"整数でソートし、それが存在すれば2番目のものから3番目のものまで並べ替えることです。
var oLst = lst.OrderBy(x => int.Parse(x.Split(' ')[0])).ThenBy(x => int.Parse(x.Split(' ')[2])).ThenBy(x => int.Parse(x.Split(' ').Last())).ToList();
整数値のすべてを持っている「完全な文字列」でのみ動作しますが、どのように私は、リストのいくつかの文字列で、このSplit(' ')[]
要素の非existanceと状況を管理することができますか?
魅力のように働く、たくさんのthanx! –