C# IEnumerable OrderBy

C# IEnumerable OrderBy,c#,linq,ienumerable,sql-order-by,C#,Linq,Ienumerable,Sql Order By,我正在使用IEnumerable orderby以升序格式对项目进行排序,但它不起作用我的查询如下: IEnumerable<Step> steps = allsteps.Where(step => step.X <= Y); steps = steps.OrderBy(step => step.X); IEnumerable steps=allsteps.Where(step=>step.X step.X); 使用OrderBy或OrderByDescend

我正在使用IEnumerable orderby以升序格式对项目进行排序,但它不起作用我的查询如下:

IEnumerable<Step> steps = allsteps.Where(step => step.X <= Y);

steps = steps.OrderBy(step => step.X);
IEnumerable steps=allsteps.Where(step=>step.X step.X);
使用OrderBy或OrderByDescending并不困难

为什么?

我想使用
Sum()
方法来汇总一些项目,项目顺序很重要(有一些规则)

我在MSDN中读到,应该列举出有效的方法,但好的方法是什么(我没有尝试)

编辑:
X
Y
属于
double
类型。
我在quick watch中检查了步骤的第一项(steps.first())。

首先,为什么不将其保留在一行上呢

var steps = allsteps.Where(step => step.X <= Y).OrderBy(step => step.X);
var steps=allsteps.Where(step=>step.X step.X);

正如“vc 74”在他的评论中指出的,如果
X
不是原始的,或者没有实现
IComparable
IComparable
,那么无论是否使用LINQ,您都无法对列表进行排序。

这正是预期的结果:

// Create some random double values from 0 - 100
var values = Enumerable.Repeat(new Random(), int.MaxValue)
                       .Select(r => r.NextDouble() * 100);

//Create an enumeration with ten elements
var pointList = values.Take(10)
                      //Cause of lacking support of IEnumerable.Zip() or .Pairwise()
                      //use this approach to create something with the properties X and Y
                      .Select(n => new PointF((float)n, (float)values.First()));

//Sort the elements
var sortedPoints = pointList.OrderBy(point => point.X);

//Output to console
foreach (var point in sortedPoints)
{
    Console.WriteLine(point.ToString());
}

在这方面遇到了非常类似的问题:

IEnumerable<Article> articles = StepThree.ReturnArticles(iUserID);
lvPending.DataSource = articles;
lvPending.DataBind();

它执行了,但没有更新我的结果。因此,进一步看,我发现因为我返回的是复杂类型,linq无法为我排序,所以我必须在调用ReturnArticles方法的StepThree.cs文件中按降序添加orderby。

如何检查结果?因为只检查第一个元素。。。你确定
步骤中的所有元素都没有相同的X值吗?你可以提供求和方法来查看发生了什么,因为在编写时选择和排序是使用双值的。DigeMail指出了一个好消息,我的列表中只有一项!!!对不起allHi david,这个问题是我刚到linq的时候提的:)这是个简单的错误,效果很好,但我当时看不出来。@SaeedAmiri:既然你解决了你的问题,那么把你的解决方案发布给其他偶然发现这个帖子的人是一个很好的做法。@Matthew,你可以看到关于这个问题的评论,事实上没有任何问题,列表只有一个元素。我并没有删除这个问题,因为一些答案已经被否决了,他们试图解决这个问题。
lvPending.DataSource = articles.OrderByDescending(a=> a.DateCreated);