Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ语句从单个客户处获取最新订单_C#_Linq - Fatal编程技术网

C# LINQ语句从单个客户处获取最新订单

C# LINQ语句从单个客户处获取最新订单,c#,linq,C#,Linq,我在学习Linq,所以请耐心听我说。 我试图创建一个Linq语句,从单个客户那里获取最新订单。我尝试了以下方法,但似乎有点不对劲: CustOrder tempOrder = Orders .OrderByDescending(c => c.OrderDate) .Where(c => c.CustomerName == "ACME") .FirstOrDefault(); 我的想法正确吗?如果我想得到最古老的订单,我会这样做: CustOrder temp

我在学习Linq,所以请耐心听我说。 我试图创建一个Linq语句,从单个客户那里获取最新订单。我尝试了以下方法,但似乎有点不对劲:

CustOrder tempOrder = Orders
    .OrderByDescending(c => c.OrderDate)
    .Where(c => c.CustomerName == "ACME")
    .FirstOrDefault();
我的想法正确吗?如果我想得到最古老的订单,我会这样做:

CustOrder tempOrder = Orders
    .OrderBy(c => c.OrderDate)
    .Where(c => c.CustomerName == "ACME")
    .FirstOrDefault();
我正在阅读关于GroupBy的文章,我有点困惑它是否适用于我的情况。
谢谢

您可以像这样缩短代码

CustOrder tempOrder = Orders
.OrderByDescending(c => c.OrderDate)
.FirstOrDefault(c => c.CustomerName == "ACME");
代码的其余部分还可以。您也可以这样做:

IList<CustOrder> tempOrder = Orders
.OrderByDescending(c => c.OrderDate)
.Take(1).ToList();
IList tempOrder=订单
.OrderByDescending(c=>c.OrderDate)
.Take(1.ToList();

这将返回一个列表,但只有一条记录。

如果我在这里出错,我深表歉意,但我对这里问题的标题感到好奇。 @7VNT-你的意思是,你想得到每位客户的第一份和最后一份订单吗?这就是你提到GroupBy的原因吗

在这种情况下,您可以执行以下操作

var firstOrders = Orders.GroupBy(x=>x.CustomerName)
                 .Select(c => c.OrderBy(x=>x.OrderDate).First());

var lastOrders = Orders.GroupBy(x=>x.CustomerName)
                .Select(c => c.OrderByDescending(x=>x.OrderDate).First());

那么你现在得到了什么结果?那么你希望得到什么呢?你可以编辑你的问题来反映这一点。我将把
Where
OrderByDescending
顺序颠倒过来。首先筛选,然后对筛选后的枚举进行排序。您的枚举有什么问题?怎么会“有点差”?吉米,这真的重要吗?EF自动创建SQL。我不认为OrderBy的顺序会引起这里的问题。我说(最后一句话)我的评论更多的是关于你在代码中指定的类型……它不应该是一个
列表吗?
?哦,对不起,我忘了修改那个部分。谢谢你的评论