我有一个列表,我想以与当前相反的顺序对结果进行排序,以模仿用户单击列标题超链接。目前,我有以下内容:
dsList.Sort((x, y) => String.CompareOrdinal(x.DisplayName, y.DisplayName));
但这只会升序排列。我知道按降序排序我会这样做:
dsList.Sort((x, y) => String.CompareOrdinal(x.DisplayName, y.DisplayName)*-1);
但是,我不想检测它当前是什么并决定要做什么。
说得通?
格拉西亚斯。
为了澄清,我不能使用 Reverse 因为我有超过 1 列可以排序,所以我需要能够指定要排序的值。
以下适用,但不适用于空值。如果有空白,排序就会卡住。
dsList.Sort((x, y) => String.CompareOrdinal(x.Surname, y.Surname) * (strB != null && (strA != null && String.Compare(strA, strB) == -1) ? -1 : 1));