我是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());
}
你能告诉我我做错了吗?
答案 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);