91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#慎用ToLower和ToUpper,小心把你的系統給拖垮了

admin
2023年7月18日 10:5 本文熱度 1237

不知道何時開始,很多程序員喜歡用ToLower,ToUpper去實現忽略大小寫模式的字符串相等性比較,有可能這個習慣是從別的語言引進的,大膽猜測下是JS,為了不引起爭論,我指的JS是技師的意思~

1. 講故事

在我們一個訂單聚合系統中,每一筆訂單都會標注來源,比如JD,Taobao,Etao,Shopex 等等一些渠道,UI上也提供高級配置輸入自定義的訂單來源,后來客戶反饋輸入xxx查詢不出訂單,這里就拿shopex為例,用戶用小寫的shopex查詢,但系統中標注的是首字母大寫的Shopex,所以自然無法匹配,為了解決這個問題開發小哥就統一轉成大寫做比對,用代碼表示如下:

var orderfrom="shopex".ToUpper();
customerIDList=MemoryOrders.where(i=>i.Orderfrom.ToUpper()==orderfrom)
.select(i=>i.CustomerId).ToList();

改完后就是這么牛的上線了,乍一看也沒啥問題,結果一查詢明顯感覺比之前速度慢了好幾秒,干脆多點幾下,好咯。。。在監控中發現CPU和memory突高突低,異常波動,這位小哥又在寫bug了,查了下代碼問他為什么這么寫,小哥說在js中就是這么比較的~~~

2. string.Compare 改造

其實在C#中面對忽略大小寫形式的比較是有專門的方法,性能高而且還不費內存,它就是 string.Compare,所以把上面代碼改成如下就可以了。

var orderfrom="shopex";
customerIDList=MemoryOrders.where(string.Compare(i.Tradefrom,tradefrom,StringComparison.OrdinalIgnoreCase)==0)
.select(i=>i.CustomerId).ToList();

這其中的 StringComparison.OrdinalIgnoreCase枚舉就是用來忽略大小寫的,上線之后除了CPU還是有點波動,其他都沒有問題了。


出處:https://www.cnblogs.com/huangxincheng/archive/2020/05/04/12827314.html


該文章在 2023/7/18 10:05:52 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 九九国产中文字幕 | 国产中文字 | 国产舌乚 | 韩国成人精品久 | 国产亚洲综合区成 | 国产男女插插一级 | 日本欧美女优在线 | 区不卡视频 | 国产女主播喷水 | 黑人巨大跨 | 欧美一级国产日韩 | 午夜国产更新 | 国产免费蜜桃视频网 | 成人a大片高 | 日韩在线精品一区 | 欧美亚洲第一页 | 欧美性一区二区三区 | 日本欧美一 | 久热99| 国产欧美在线日韩 | 日韩一区二区在线 | 国产精品观看在 | 91色在线| 日本三级 | 九色导航| 国产片婬 | 国产精品1线在线 | 97亚洲99| 日本邪恶网站 | 成人激情五月天 | 理论片写真午夜 | 日本高清乱理 | 欧美做a一级视频 | 欧美一区一区二区 | 国产精品免费看 | 国产尤物a | 国产初高中生视 | 国产高清自偷自 | 国产真实乱xxxⅹ | 欧美中文日韩aⅴ | 91极品蜜桃臀|