c#中带有两个连接语句的数据表Linq
本文关键字:连接 两个 语句 Linq 数据表 | 更新日期: 2023-09-27 18:15:10
我的代码:
var Result = from TempRow in ArrAbsDiff
where TempRow.Strike == StrikeOfMinAbsDiff
select TempRow.PutMidPrice;
我知道上面的代码只返回一个decimal类型的值(可能是double类型)。但是,Result的类型是Enumerable
,我不能很容易地写出Result + 2
。我需要转换它的属性。我可以通过以下代码来实现:
var Result = (from TempRow in ArrAbsDiff
where TempRow.Strike == StrikeOfMinAbsDiff
select TempRow.PutMidPrice).Min();
有更有效的方法来完成它吗?
认为,
我知道上面的代码只返回一个decimal类型的值
用First
法代替Min
法
在编译时,您的查询是否返回1条记录或多个记录是未知的。因此,它假设它们的一个列表。
我不知道它们之间是否有性能差异,我通常使用. single()来获取单个记录。更明显的是,我想要一个记录,而不是,例如,最小的一个。
尝试使用FirstOrDefault()"这将选择返回的第一个结果(因为您知道只会返回一个值)。如果没有返回值,结果将为空,在if语句中捕获,如下所示:
var Result = (from TempRow in ArrAbsDiff
where TempRow.Strike == StrikeOfMinAbsDiff
select TempRow.PutMidPrice).FirstOrDefault();
if (Result == null)
return; // or error message
也将保留返回值的类型(这是我的头,可能需要稍微改变!)