Lambda排序asc

时间:2014-08-08 20:32:07

标签: c# linq lambda

我是lambda表达式的新手,我在确定如何按升序排序时遇到了一些麻烦。

我目前的代码只是按字母顺序排序我的X值。我想按顺序排序我的Y值。

我知道我需要在某个地方使用Count(),但我不知道在哪里。

下面是我的代码:

var query = PIList
    .OrderByDescending(x => x.Failcode)
    .ThenByDescending(x => x.Failcode)
    .Select(x => x.Failcode)
    .Distinct();

foreach (var value in query)
{
    PIFailCodeChart.Series[0].Points
        .AddXY(value, PIList.Where(x => x.Failcode == value).Count());
}

你能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:1)

Here's a .NET Fiddle showing how,这是代码:

using System;
using System.Collections.Generic;
using System.Linq;

public class Program
{
    public static void Main()
    {
        List<string> s = new List<string>() { "a", "b", "c", "a"};
        var asc = s.OrderBy(e => e).ToList<string>();
        Console.WriteLine(string.Join(", ", asc));
    }
}

这会输出a, a, b, c,一个升序排序列表。

你可以这样做:

var query = PIList.Distinct(x => x.FailCode)
    .OrderBy(x => x.FailCode)
    .Select(x => x.FailCode);