背景:在本人的项目中,用到了List.Sort() 方法,对List集合进行排序,然后将排序后的结果呈现出来。
问题:后来在实际测试过程中,发现排序后的结果并不固定,同一个List集合,按照相同的排序规则进行排序后,得出来的结果并不一样。
诊断:一开始并未察觉是Sort方法的原因,经过摸查排找,后来发现根源在List.Sort() 排序方法。
症结描述:当List集合中存在重复数据时(并非单纯的简单数据类型),仅按照一个关键字排序[Sort(Comparison<T> comparison)],的出来的排序结果是不一样的。需要在比较条件comparison中,完善比较规则,多关键字段比较,可确保排序后的集合,顺序保持一致。