9萬年前的LINQ

2021-05-22 09:19:35 字數 1437 閱讀 9500

linq出來已經9萬年了,今天第一次用。

linq的作用看來是用於查詢。說到查詢,很自然想起sql,資料庫之類,但linq除了可以處理資料庫的資料,更主要的是用來處理字串、陣列、xml等物件的查詢。當初linq剛出來時,因為不了解,覺得很奇怪,資料庫的操作早就被狂熱的架構師們封裝、區分了一層又一層,什麼資料層,業務邏輯層,狗屁層,等等,現在來個linq,直接在**裡運算元據庫,這不是扯淡嗎?不是逆潮流而動嗎?真是***、分科學、反他媽狗日的和諧啊,所以不學。

近來因為有找工作的壓力,所以看了看,感覺視野比過去開闊了一些。高度決定視野,技術決定思維啊,知道了它的用途後,終於在工作中應用了一回。

應用場景:

記錄使用者的興趣。我們準備了一大堆選項,比如,吃、喝、嫖、賭等等,在頁面中以核取方塊(checkbox)來體現,使用者可以多選。

顯示這個頁面的時候,很自然地,這堆選項都要輸出,使用者以前選過的,就打上勾。

思路:資料一、slove,使用者選過的資料,string型別,形如1-2-3:數字是id值,中間以「-」分隔

資料二、ctlist,選項,list<>

struct strulove

//自定義結構,用於承載查詢結果裡的元素。不是非結構不可的。

……stringarlove=slove.split('-');//形如1-2-3的字串分拆成陣列。ctlist已經是乙個list<>。我示範的linq就是要聯合arlove和ctlist,從中找出結果。

//傳說中的linq開始

var setct = from ct inctlist

join love inarloveon ct.id.tostring() equals love into gj

from subct in gj.defaultifempty()

select new strulove

;//傳說中的linq結束

this.cbldefault.items.clear();//

cbldefault是

控制項foreach(var v in setct)

這裡面還用了左聯接 defaultifempty()。要麼不用,一用就高起點,呵呵。

如果不用linq,當然也沒什麼不可以,就兩個巢狀迴圈,將使用者的選中資料跟選項逐個比對。

以前學pascal的時候,有集合這種型別,後來在其他語言上都沒發現。有了linq以後,感覺實現集合的功能比較容易了。

比較簡單一點的:

int arb2 = new int ;

var setb2 = from b in arb2

where b == 0

select b;

IDC IT業2023年前將有580萬個新工作崗位

據市場研究公司idc發表的研究報告稱,it行業在未來四年裡將產生580萬個新的工作崗位。idc 稱,it行業將是推動經濟走出低谷的引擎,在未來四年將建立7.5萬個新的業務,每年增加3 的新的工作崗位。微軟首席執行官史蒂夫鮑爾默說,正在培育技術創新,投資基礎設施 教育和公民的技能開發的各個國家將擁有全...

七年前的Google

七年前的google什麼樣?你一定要看看 google剛滿七周歲,但儼然已經是乙個巨人了,當 sergey brin 和 larry page 七年前在後院車庫裡建立google的時候肯定沒想到他們正在創造 it 界的又乙個神話。來看看google當年起家時的家當 google的後台伺服器,300m...

萬年深坑 mpVue 中的坑

1.偶發檢視不更新 使用 js 狀態 patch 賦值到陣列 2.開發者工具有時候不報錯,不執行 可能是某個語法錯誤導致中斷 3.v else 中如果內容複雜,build 後可能渲染出空白元素 可以將 v if v else 對調 4.元件巢狀過深,可能導致 vm 資料殘留,具體要分析mpvue 中...