Existe-t-il un moyen d'obtenir des résultats cohérents à partir de la comparaison lorsque certains des éléments de tri sont identiques? Dois-je juste coder ma propre routine de tri?Comparaison Les résultats des flip flops délégués sur des clés identiques
public class Sorter
{
public void SortIt()
{
var myData = new List<SortData>(3);
myData.Add(new SortData { SortBy = 1, Data = "D1"});
myData.Add(new SortData { SortBy = 1, Data = "D2" });
myData.Add(new SortData { SortBy = 2, Data = "D3" });
myData.Sort(new Comparison<SortData>((a, b) => a.SortBy.CompareTo(b.SortBy)));
ShowResults(myData);
myData.Sort(new Comparison<SortData>((a, b) => a.SortBy.CompareTo(b.SortBy)));
ShowResults(myData);
myData.Sort(new Comparison<SortData>((a, b) => a.SortBy.CompareTo(b.SortBy)));
ShowResults(myData);
}
private void ShowResults(IEnumerable<SortData> myData)
{
foreach (var data in myData)
{
Console.WriteLine(data.SortBy + " " + data.Data);
}
Console.WriteLine("\n");
}
}
public class SortData
{
public int SortBy { get; set; }
public string Data { get; set; }
}
enter code here
Maintenant, remarquez que les résultats sont les suivants:
1 D2
1 D1
2 D3
1 D1
1 D2
2 D3
1 D2
1 D1
2 D3
Je ne se soucient pas vraiment comment les deux premiers éléments sont classés aussi longtemps qu'il est cohérent et ce n'est pas! Il garde flip flopping.