如何使用 lambda 或 linq 订购 asc/dsc

发布于 2024-09-13 00:14:23 字数 54 浏览 3 评论 0原文

如何使用 linq 或 lambda 对 IEnumerable进行降序排序?

how to order descending an IEnumerable<T> with linq or lambda ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

丢了幸福的猪 2024-09-20 00:14:23
Enumerable.OrderByDescending

如果问题是你想要下降而不是上升

Enumerable.OrderByDescending

if the problem was that you wanted descending and not ascending

与之呼应 2024-09-20 00:14:23

如果您指的是非泛型 IEnumerable,则应使用 CastOfType 来获取 IEnumerable首先,然后您可以使用正常的 OrderBy / OrderByDescending 调用。

例如:

IEnumerable test = new string[] { "abc", "x", "y", "def" };
IEnumerable<string> orderedByLength = test.Cast<string>()
                                          .OrderBy(x => x.Length);

您还可以通过在查询表达式中显式声明类型来做到这一点:

IEnumerable<string> orderedByLength = from string x in test
                                      orderby x.Length
                                      select x;

编辑:现在问题已经澄清,查询表达式形式为:

var query = from value in collection
            orderby value.SomeProperty descending
            select value;

If you mean a non-generic IEnumerable, you should use Cast or OfType to get an IEnumerable<T> first, then you can use the normal OrderBy / OrderByDescending calls.

For example:

IEnumerable test = new string[] { "abc", "x", "y", "def" };
IEnumerable<string> orderedByLength = test.Cast<string>()
                                          .OrderBy(x => x.Length);

You can also do this by explicitly stating the type in a query expression:

IEnumerable<string> orderedByLength = from string x in test
                                      orderby x.Length
                                      select x;

EDIT: Now that the question has been clarified, the query expression form is:

var query = from value in collection
            orderby value.SomeProperty descending
            select value;
醉生梦死 2024-09-20 00:14:23

如果您谈论的是通用 IEnumerable,下面是一个精简的用法示例。

// Using complex type
class Person()
{
    public string Name;
}

IEnumerable<Person> myEnumerable = new List<Person>();
this.myEnumerable.OrderByDescending(person => person.Name)

// Using value type
IEnumerable<int> ints = new List<int>();
ints.OrderByDescending(x => x);

If your talking about a generic IEnumerable, below is a trimmed down example of usage.

// Using complex type
class Person()
{
    public string Name;
}

IEnumerable<Person> myEnumerable = new List<Person>();
this.myEnumerable.OrderByDescending(person => person.Name)

// Using value type
IEnumerable<int> ints = new List<int>();
ints.OrderByDescending(x => x);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文