如何使用LINQ进行条件排序
本文关键字:条件 排序 何使用 LINQ | 更新日期: 2023-09-27 18:03:21
我正在使用linq从xml文件中获取数据。这是我的密码。
XDocument document = XDocument.Load(@"c:'users'tridip'documents'visual studio 2010'Projects'WindowsFormsApplication5'WindowsFormsApplication5'Orders.xml");
var books = from r in document.Descendants("Orders")
.Skip(0)
.Take(5)
select new
{
OrderID = r.Element("OrderID").Value,
CustomerID = r.Element("CustomerID").Value,
EmployeeID = r.Element("EmployeeID").Value,
};
dataGridView1.DataSource= books.ToList().OrderBy(a=> a.OrderID);
当我添加这一行CCD_ 1时,数据网格视图中没有显示任何数据。
所以我的问题是,我们不能通过这种方式添加订单books.ToList().OrderBy(a=> a.OrderID);
吗?
我的第二个问题是如何有条件地进行订单?
我将在某个时间向我的函数发送一个参数,如ASC
或某个时间DESC
。如果我发送ASC
,则排序将按升序进行,或者某个时间排序将按降序进行。
因此,请指导我如何编写代码,以升序或降序对数据进行排序。感谢
books.ToList().OrderBy(a=> a.OrderID)
将导致两个枚举:立即枚举ToList((,延迟枚举OrderBy((。您应该能够通过以下方式获得订单列表:
books.OrderBy(a=> a.OrderID).ToList();
条件排序很简单,因为在实际枚举之前,"books"将是"IQueryable"的实现。因此,您可以这样做:
if (true)
books = books.OrderBy();
var results = books.ToList();