C# 比较代理触发器在相同键上的结果

C# 比较代理触发器在相同键上的结果,c#,sorting,delegates,C#,Sorting,Delegates,当某些排序项目相同时,有没有办法从比较中获得一致的结果?我是否需要编写自己的排序例程 public class Sorter { public void SortIt() { var myData = new List<SortData>(3); myData.Add(new SortData { SortBy = 1, Data = "D1"}); myData.Add(new SortData { SortB

当某些排序项目相同时,有没有办法从比较中获得一致的结果?我是否需要编写自己的排序例程

    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
公共类分拣机
{
公共无效SortIt()
{
var myData=新列表(3);
添加(新的SortData{SortBy=1,Data=“D1”});
添加(新的SortData{SortBy=1,Data=“D2”});
添加(新的SortData{SortBy=2,Data=“D3”});
排序(新的比较((a,b)=>a.SortBy.CompareTo(b.SortBy));
展示结果(myData);
排序(新的比较((a,b)=>a.SortBy.CompareTo(b.SortBy));
展示结果(myData);
排序(新的比较((a,b)=>a.SortBy.CompareTo(b.SortBy));
展示结果(myData);
}
私有void显示结果(IEnumerable myData)
{
foreach(myData中的var数据)
{
Console.WriteLine(data.SortBy+“”+data.data);
}
Console.WriteLine(“\n”);
}
}
公共类排序数据
{
public int SortBy{get;set;}
公共字符串数据{get;set;}
}
在这里输入代码
现在注意结果是什么:

1 D2
1 D1
2 D3

1 D1
1 D2
2 D3

1 D2
1 D1
2 D3

我真的不在乎前两项是如何排序的,只要它是一致的,而不是!它一直在跳跃。

基本上是:

此方法使用数组..::.Sort,其中 使用快速排序算法这个 实现执行不稳定的任务 分类也就是说,如果两个元素是 平等,他们的顺序可能不一样 保存。相比之下,一个稳定的 排序保留元素的顺序 这是平等的

如果你想有一个稳定的排序,看看其他地方或推出自己的