Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 排序与按c排序#_C#_List_Linq_Lambda - Fatal编程技术网

C# 排序与按c排序#

C# 排序与按c排序#,c#,list,linq,lambda,C#,List,Linq,Lambda,我想将此代码更新为使用OrderBy而不是Sort protected void Sort() { m_Items.Sort(new Comparison<PayArrayItem>( delegate (PayArrayItem x, PayArrayItem y) { return x.TransactionDate.CompareTo

我想将此代码更新为使用OrderBy而不是Sort

 protected void Sort()
        {
            m_Items.Sort(new Comparison<PayArrayItem>(
                delegate (PayArrayItem x, PayArrayItem y)
                {
                    return x.TransactionDate.CompareTo(y.TransactionDate);
                }
                ));
        }
protectedvoid排序()
{
m_Items.Sort(新比较(
代表(薪资分配项目x、薪资分配项目y)
{
返回x.TransactionDate.CompareTo(y.TransactionDate);
}
));
}

嗯,
排序
进行就地排序,即对现有的
m_项目进行排序
集合:

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

...

protected void Sort() {
  m_Items = m_Items
    .OrderBy(item => item.TransactionDate)
    .ToList(); // Assuming m_Items is List<T>
}
相反,Linq
OrderBy
创建一个新的
IEnumerable
,您必须将其具体化并分配回集合:

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

...

protected void Sort() {
  m_Items = m_Items
    .OrderBy(item => item.TransactionDate)
    .ToList(); // Assuming m_Items is List<T>
}
使用System.Linq;
...
受保护的空排序(){
m_项目=m_项目
.OrderBy(item=>item.TransactionDate)
.ToList();//假设m_项是列表
}

请注意,因为在
OrderBy
的情况下,我们会创建一个额外的
列表
实例,所以在您的情况下,
Sort
是更好的选择

m_项的类型是什么?
m_项。OrderBy(m=>m.TransactionDate)
List
Sort
将对列表进行原位排序,这意味着它将实际更改列表本身,而
OrderBy
将返回一个新的(排序的)列表(准确地说,是一个IEnumerable)。这符合LINQ和函数式编程的一般主题,我想这将有助于你找到一个关于LINQ的教程,以便全面理解它们之间的差异。因为问题已经有了纯拷贝粘贴准备好的答案,所以我投票将其作为Sort与OrderBy更一般比较的副本来结束,它显示了各种语法,并解释了每种方法的差异。