linq Sort vs OrderBy c# [duplicate]

ubbxdtey  于 2023-05-26  发布在  C#
关注(0)|答案(1)|浏览(152)

此问题已在此处有答案

C# Sort and OrderBy comparison(6个答案)
3年前关闭。
我想更新这段代码,使用OrderBy而不是Sort。

protected void Sort()
        {
            m_Items.Sort(new Comparison<PayArrayItem>(
                delegate (PayArrayItem x, PayArrayItem y)
                {
                    return x.TransactionDate.CompareTo(y.TransactionDate);
                }
                ));
        }
u5rb5r59

u5rb5r591#

好吧,Sort进行 * 就地 * 排序,即它对 * 现有 * m_Items集合进行排序:

protected void Sort() {
  m_Items.Sort((left, right) => left.TransactionDate.CompareTo(right.TransactionDate));
}

相反,LinqOrderBy创建了一个 newIEnumerable<T>,你必须 * 具体化 * 并 * 赋值 * 回集合:

using System.Linq;

...

protected void Sort() {
  m_Items = m_Items
    .OrderBy(item => item.TransactionDate)
    .ToList(); // Assuming m_Items is List<T>
}

请注意,因为在OrderBy的情况下,我们创建了一个 * 额外的 * List<T>示例,这就是为什么Sort在您的情况下是更好的选择。

相关问题