gpt4 book ai didi

c# - Linq 按属性排序,然后按原始顺序

转载 作者:太空狗 更新时间:2023-10-29 21:08:39 24 4
gpt4 key购买 nike

假设我有 var lst = List<Foobar>我在循环中填充。我无法修改 Foobar对象。

有效执行 OrderBy 的最佳方法是什么?在 IEnumerable 的一处特性上,但保留原始顺序以防它们相等?例如,如果我有这个:

var lst = new List<Foobar> {
new Foobar{Foo = "b", Bar=3},
new Foobar{Foo = "b", Bar=1},
new Foobar{Foo = "a", Bar=2}
}

我想确保在 lst.OrderByWithPreserveOrder(x => x.Foo).ToList 之后我会得到以下信息:

List<Foobar> {
new Foobar{Foo = "a", Bar=2}
new Foobar{Foo = "b", Bar=3},
new Foobar{Foo = "b", Bar=1},
}

最佳答案

OrderBy的实现已经是一种稳定排序,也就是说在对象相等的情况下,它会保持原来的顺序。

关于c# - Linq 按属性排序,然后按原始顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25898031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com