相关疑难解决方法(0)

C#Sort和OrderBy比较

我可以使用Sort或OrderBy对列表进行排序.哪一个更快?两者都在使用相同的算法吗?

List<Person> persons = new List<Person>();
persons.Add(new Person("P005", "Janson"));
persons.Add(new Person("P002", "Aravind"));
persons.Add(new Person("P007", "Kazhal"));
Run Code Online (Sandbox Code Playgroud)

1.

persons.Sort((p1,p2)=>string.Compare(p1.Name,p2.Name,true));
Run Code Online (Sandbox Code Playgroud)

2.

var query = persons.OrderBy(n => n.Name, new NameComparer());

class NameComparer : IComparer<string>
{
    public int Compare(string x,string y)
    {
      return  string.Compare(x, y, true);
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# sorting performance sql-order-by

98
推荐指数
5
解决办法
10万
查看次数

LINQ"OrderBy"使用什么排序算法?

显然LINQ的"OrderBy"最初被指定为不稳定,但到Orca时,它被指定为稳定.并非所有文档都已相应更新 - 请考虑以下链接:

但是,如果LINQ的OrderBy现在"稳定",那么这意味着它没有使用快速排序(这本质上是不稳定的),即使某些文档(例如Troy的书)说它是.所以我的问题是:如果不是快速排序,那么LINQ的orderBy使用的实际算法是什么?

linq sorting algorithm quicksort

49
推荐指数
3
解决办法
1万
查看次数

学习LINQ:QuickSort

我今天下午开始学习LINQ,到目前为止只是在LINQ上收集品牌.我尝试的第一件事就是实现QSort.

现在 - 忽略我可以使用ORDERBY并且这是一个非常愚蠢的qsort实现的事实- 我想出的是:

public class lqsort
{
    public static List<int> QSLinq(List<int> _items)
    {
        if (_items.Count <= 1)
            return _items;

        int _pivot = _items[0];

        List<int> _less = (from _item in _items where _item < _pivot select _item).ToList();
        List<int> _same = (from _item in _items where _item == _pivot select _item).ToList();
        List<int> _greater = (from _item in _items where _item > _pivot select _item).ToList();

        return (QSLinq(_less).Concat(_same.Concat(QSLinq(_greater)))).ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

唯一真正让我烦恼的是所涉及的所有演员.我可能会使用任何LINQ技巧吗?或者我只是将LINQ用于不适合的事情?

.net c# linq

10
推荐指数
2
解决办法
3291
查看次数

标签 统计

.net ×2

c# ×2

linq ×2

sorting ×2

algorithm ×1

performance ×1

quicksort ×1

sql-order-by ×1