按字母顺序排列

本文关键字:排列 顺序 | 更新日期: 2023-09-27 18:03:31

我有一个产品表,想要按字母顺序排序。但是当我写这个查询时,他们仍然通过id来。我在谷歌上查了很多网页,但找不到任何来源。

var product = Db.tablename
                .Where(s => s.colum == DropDownList2.SelectedValue)
                .OrderBy(s=> s.Name);

按字母顺序排列

此查询

var product = Db.tablename
                .Where(s => s.colum == DropDownList2.SelectedValue)
                .OrderBy(s=> s.Name);

在被要求执行之前不会被执行。所以你必须把它改成下面这个:

var product = Db.tablename
                .Where(s => s.colum == DropDownList2.SelectedValue)
                .OrderBy(s=> s.Name).ToList();

发生这种情况的原因实际上是您刚刚声明了一个查询。我是说你还没有执行它。这就是LINQ查询的本质,在技术术语中称为延迟执行。另一方面,如果您在查询结束时调用ToList()方法,您将触发该查询的立即执行,其结果将是与s.Name相同类型的List

必须使用ToList来执行排序。

var product = Db.tablename
                .Where(s => s.colum == DropDownList2.SelectedValue)
                .OrderBy(s=> s.Name).ToList();

order by不做任何事情,只执行查询,ToList将对原始查询进行排序。