リストがあり、ユーザーが列ヘッダーのハイパーリンクをクリックするのを模倣するために、現在とは逆の順序で結果を並べ替えたいと思います。現在、私は次のことをしています:
dsList.Sort((x, y) => String.CompareOrdinal(x.DisplayName, y.DisplayName));
しかし、これは昇順でのみソートされます。私は降順で並べ替えることを知っています:
dsList.Sort((x, y) => String.CompareOrdinal(x.DisplayName, y.DisplayName)*-1);
しかし、私はそれが現在何であるかを検出し、どの種類を実行するかを決定する必要はありません。
わかる?
グラシアス。
明確にするために、並べ替え可能な列が複数あるため、Reverseを使用できません。そのため、並べ替える値を指定する機能が必要です。
以下は機能しますが、null値の場合は機能しません。空白がある場合、ソートはスタックします。
dsList.Sort((x, y) => String.CompareOrdinal(x.Surname, y.Surname) * (strB != null && (strA != null && String.Compare(strA, strB) == -1) ? -1 : 1));