以下代码行不断让我崩溃:“调用的目标已引发异常。//未处理的表达式类型:1001”
谁能只看一眼就知道为什么?
myList.Aggregate((curmax, x) => (curmax == null || x.LastMonth > curmax.LastMonth ? x : curmax));
我得到的是 curmax 是将返回的变量,而 X 是一个被迭代的项目。但我无法解释错误。
以下代码行不断让我崩溃:“调用的目标已引发异常。//未处理的表达式类型:1001”
谁能只看一眼就知道为什么?
myList.Aggregate((curmax, x) => (curmax == null || x.LastMonth > curmax.LastMonth ? x : curmax));
我得到的是 curmax 是将返回的变量,而 X 是一个被迭代的项目。但我无法解释错误。
我怀疑这只是 NHibernate 不支持的操作。但是,如果您只是在“LastMonth 的最大值”之后,您可以使用:
var latestPeriod = myList.OrderByDescending(x => x.LastMonth)
.FirstOrDefault();
这将相当简单,并且更有可能得到支持。
我通过.Tolist()
从 Nhiberate 打电话解决了这个问题。从那里开始使用 Microsoft Linq 的聚合扩展方法(而不是 Nhibernate 版本)并且没有更多问题。
myList.ToList().Aggregate((curmax, x) => (curmax == null || x.LastMonth > curmax.LastMonth ? x : curmax));