pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

使用 Min 或 Max 時如何處理 LINQ 中的空值?

How to handle nulls in LINQ when using Min or Max?(使用 Min 或 Max 時如何處理 LINQ 中的空值?)
本文介紹了使用 Min 或 Max 時如何處理 LINQ 中的空值?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有以下 Linq 查詢:

I have the following Linq query:

result.Partials.Where(o => o.IsPositive).Min(o => o.Result)

result.Partials.Where(o => o.IsPositive) 不包含元素時,我得到一個異常.除了將操作一分為二并檢查是否為空之外,是否有一種優雅的方法來處理這個問題?我有一堂課充滿了這樣的操作.

I get an exception when result.Partials.Where(o => o.IsPositive) does not contains elements. Is there an elegant way to handle this other than splitting the operation in two and checking for null? I have a class full of operations like this one.

問題與 LINQ to Objects 相關.

The question is related with LINQ to Objects.

這是我得到的異常(翻譯它說:序列為空):

This is the Exception I'm getting (translated it says: The sequence is empty):

推薦答案

Min

計算的簡短總結

- 無中介(例外!)

   var min = result.Partials.Where(o => o.IsPositive).Min(o => o.Result);

這是您的情況:如果沒有匹配的元素,則 Min 調用將引發異常 (InvalidOperationException).

This is your case: if there are no matching elements, then the Min call will raise an exception (InvalidOperationException).

 var min = result.Partials.Where(o => o.IsPositive)
                          .Select(o => o.Result)
                          .DefaultIfEmpty()
                          .Min();

DefaultIfEmpty 將在 0 元素上創建一個枚舉,當列表中沒有元素時.你怎么知道 0 是 Min 還是 0 代表沒有元素的列表?

DefaultIfEmpty will create an enumeration over the 0 element, when there are no elements in the list. How do you know that 0 is the Min or if 0 stands for a list with no elements?

   var min = result.Partials.Where(o => o.IsPositive)
                            .Min(o => (decimal?)o.Result);

這里的 Min 要么是 null(因為它等于 default(decimal?))要么是找到的實際 Min.

Here Min is either null (because that's equal to default(decimal?)) or the actual Min found.

所以這個結果的消費者會知道:

So a consumer of this result will know that:

  1. 當結果為 null 時,列表 沒有元素
  2. 當結果是十進制值時,列表有一些元素,這些元素的Min就是返回值.
  1. When result is null then the list had no elements
  2. When the result is a decimal value then the list had some elements and the Min of those elements is that returned value.

但是,如果這無關緊要,則可以調用 min.GetValueOrDefault(0).

However, when this doesn't matter, then min.GetValueOrDefault(0) can be called.

這篇關于使用 Min 或 Max 時如何處理 LINQ 中的空值?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Why shouldn#39;t I always use nullable types in C#(為什么我不應該總是在 C# 中使用可空類型)
C# HasValue vs !=null(C# HasValue vs !=null)
C# ADO.NET: nulls and DbNull -- is there more efficient syntax?(C# ADO.NET:空值和 DbNull —— 有沒有更高效的語法?)
How to set null value to int in c#?(如何在c#中將空值設置為int?)
Method call if not null in C#(在 C# 中如果不為 null 的方法調用)
GetType on Nullable Boolean(可空布爾值上的 GetType)
主站蜘蛛池模板: 钢衬四氟管道_钢衬四氟直管_聚四氟乙烯衬里管件_聚四氟乙烯衬里管道-沧州汇霖管道科技有限公司 | 选矿设备-新型重选设备-金属矿尾矿重选-青州冠诚重工机械有限公司 | 两头忙,井下装载机,伸缩臂装载机,30装载机/铲车,50装载机/铲车厂家_价格-莱州巨浪机械有限公司 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 蒸压釜-陶粒板隔墙板蒸压釜-山东鑫泰鑫智能装备有限公司 | 吹塑加工_大型吹塑加工_滚塑代加工-莱力奇吹塑加工有限公司 | 快速门厂家批发_PVC快速卷帘门_高速门_高速卷帘门-广州万盛门业 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 蔬菜配送公司|蔬菜配送中心|食材配送|饭堂配送|食堂配送-首宏公司 | 长春网站建设,五合一网站设计制作,免费优化推广-长春网站建设 | 陕西华春网络科技股份有限公司 | 红外光谱仪维修_二手红外光谱仪_红外压片机_红外附件-天津博精仪器 | 无痕胶_可移胶_无痕双面胶带_可移无痕胶厂家-东莞凯峰 | 抖音短视频运营_企业网站建设_网络推广_全网自媒体营销-东莞市凌天信息科技有限公司 | 步进电机_agv电机_伺服马达-伺服轮毂电机-和利时电机 | 上海盐水喷雾试验机_两厢式冷热冲击试验箱-巨怡环试 | 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 | 我爱古诗词_古诗词名句赏析学习平台| 切铝机-数控切割机-型材切割机-铝型材切割机-【昆山邓氏精密机械有限公司】 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 硬齿面减速机[型号全],ZQ减速机-淄博久增机械 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 游泳池设计|设备|配件|药品|吸污机-东莞市太平洋康体设施有限公司 | 安全光栅|射频导纳物位开关|音叉料位计|雷达液位计|两级跑偏开关|双向拉绳开关-山东卓信机械有限公司 | 衬四氟_衬氟储罐_四氟储罐-无锡市氟瑞特防腐科技有限公司 | 压砖机_电动螺旋压力机_粉末成型压力机_郑州华隆机械tel_0371-60121717 | 烟台游艇培训,威海游艇培训-烟台市邮轮游艇行业协会 | 档案密集柜_手动密集柜_智能密集柜_内蒙古档案密集柜-盛隆柜业内蒙古密集柜直销中心 | 沥青车辙成型机-车托式混凝土取芯机-混凝土塑料试模|鑫高仪器 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 复合肥,化肥厂,复合肥批发,化肥代理,复合肥品牌-红四方 | 全自动翻转振荡器-浸出式水平振荡器厂家-土壤干燥箱价格-常州普天仪器 | 脉冲除尘器,除尘器厂家-淄博机械| 「钾冰晶石」氟铝酸钾_冰晶石_氟铝酸钠「价格用途」-亚铝氟化物厂家 | 自恢复保险丝_贴片保险丝_力特保险丝_Littelfuse_可恢复保险丝供应商-秦晋电子 | 挤出机_橡胶挤出机_塑料挤出机_胶片冷却机-河北伟源橡塑设备有限公司 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 螺钉式热电偶_便携式温度传感器_压簧式热电偶|无锡联泰仪表有限公司|首页 | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 | 广州印刷厂_广州彩印厂-广州艺彩印务有限公司 |