Linq用法筆記

一摩梧、什么是Linq?

LINQ即Language Integrated Query(語言集成查詢)物延,LINQ是集成到C#和Visual Basic.NET這些語言中用于提供查詢數(shù)據(jù)能力的一個新特性。

LINQ是一種用來進(jìn)行數(shù)據(jù)訪問的編程模型仅父,Linq可以用相同的語法訪問不同的數(shù)據(jù)源叛薯,比如xml、數(shù)據(jù)庫笙纤、注冊表耗溜、事件日志等。

二省容、Linq包含哪些部分抖拴?

1、Linq to Sql組件:可以查詢關(guān)系型數(shù)據(jù)庫的數(shù)據(jù),并可以提供其他操作阿宅,如檢索候衍、插入、修改洒放、刪除蛉鹿、排序、聚合往湿、分區(qū)等妖异。

2、Linq to DataSet組件:查詢DataSet對象中的數(shù)據(jù)领追。

3他膳、Linq to Object組件:可以查詢IEnumerable或是IEnumerable 集合對象,即能夠查詢?nèi)魏慰梢悦杜e的集合绒窑,如數(shù)組(Array和ArrayList)矩乐、泛型字典Dictinary等,以及用戶自定義的集合回论,而不需要使用Linq提供程序或API。

4分歇、Linq to XML組件:查詢和操作XML結(jié)構(gòu)的數(shù)據(jù)傀蓉。

5、Linq to Entities:是 Entity Framework 的一部分并且取代 LINQ to SQL 作為在數(shù)據(jù)庫上使用 LINQ 的標(biāo)準(zhǔn)機(jī)制职抡。Entity Framework 是行業(yè)領(lǐng)先的對象-關(guān)系映射(ORM)系統(tǒng)葬燎。可以和多種數(shù)據(jù)庫一起使用缚甩,并支持各種靈活谱净、復(fù)雜的數(shù)據(jù)模型。

三擅威、Linq的一些用法

1壕探、簡單的LINQ查詢

static void Main(string[] args)

{

int[] marks = { 60, 77, 82, 46, 59, 98, 100, 84 };//定義一個數(shù)組

var good = from m in marks//使用LINQ找到所有數(shù)值大于等于60的數(shù)字

where m >= 60

select m;

foreach (int mark in good)//循環(huán)每一個結(jié)果

{

Console.WriteLine(mark);//輸出結(jié)果

}

}

2、使用Lambda表達(dá)式的LINQ查詢

static void Main(string[] args)

{

int[] marks = { 60, 77, 82, 46, 59, 98, 100, 84 };

var good = marks.Where(m => m >= 60);//使用Lambda表達(dá)式查詢數(shù)值大于等于60的數(shù)字

foreach (int mark in good)//循環(huán)每一個結(jié)果

{

Console.WriteLine(mark);//輸出結(jié)果

}

}

3郊丛、使用LINQ查詢對象集合

class Program

{

static void Main(string[] args)

{

List students = new List//申明Student對象的集合

{

new Student{ StudentID=1, Sex=true, Name="小明", Birthday=Convert.ToDateTime("1984-1-1")},

new Student{ StudentID=2, Sex=false, Name="小張", Birthday=Convert.ToDateTime("1983-5-1")},

new Student{ StudentID=3, Sex=true, Name="小王", Birthday=Convert.ToDateTime("1983-2-15")},

new Student{ StudentID=4, Sex=false, Name="小麗", Birthday=Convert.ToDateTime("1985-3-8")}

};

//接下來使用LINQ查詢所有年齡小于25歲的男性

var names = from s in students

where s.Sex == true&&s.GetAge()<25 //調(diào)用對象的方法

select s.Name;

foreach (string name in names)//循環(huán)輸出結(jié)果

{

Console.WriteLine(name);

}

}

}

public class Student ?//定義Student類

{

//以下是定義類中屬性

public string Name { get; set; }

public int StudentID { get; set; }

public bool Sex { get; set; }

public DateTime Birthday { get; set; }

//以下是定義類中的方法

public int GetAge()

{

return DateTime.Now.Year - Birthday.Year;

}

}

四李请、Linq有什么好處?

1厉熟、容易上手导盅,學(xué)習(xí)成本低

2、可以很大程度上減少代碼量揍瑟。

3白翻、更快開發(fā)錯誤更少的應(yīng)用程序。

4绢片、可以很容易的合并數(shù)據(jù)源滤馍。

5岛琼、讓新開發(fā)者開發(fā)效率更高。

6纪蜒、任何對象或數(shù)據(jù)源都可以定制實現(xiàn)Linq適配器衷恭,為數(shù)據(jù)交互帶來真正方便。

歡迎關(guān)注我的公眾號(同步更新文章):DoNet技術(shù)分享平臺

閱讀原文

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纯续,一起剝皮案震驚了整個濱河市随珠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌猬错,老刑警劉巖窗看,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異倦炒,居然都是意外死亡显沈,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門逢唤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拉讯,“玉大人,你說我怎么就攤上這事鳖藕∧Э叮” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵著恩,是天一觀的道長院尔。 經(jīng)常有香客問我,道長喉誊,這世上最難降的妖魔是什么邀摆? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮伍茄,結(jié)果婚禮上栋盹,老公的妹妹穿的比我還像新娘。我一直安慰自己幻林,他們只是感情好贞盯,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著沪饺,像睡著了一般躏敢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上整葡,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天件余,我揣著相機(jī)與錄音,去河邊找鬼。 笑死啼器,一個胖子當(dāng)著我的面吹牛旬渠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播端壳,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼告丢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了损谦?” 一聲冷哼從身側(cè)響起岖免,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎照捡,沒想到半個月后颅湘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡栗精,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年闯参,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悲立。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡鹿寨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出薪夕,到底是詐尸還是另有隱情释移,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布寥殖,位于F島的核電站,受9級特大地震影響涩蜘,放射性物質(zhì)發(fā)生泄漏嚼贡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一同诫、第九天 我趴在偏房一處隱蔽的房頂上張望粤策。 院中可真熱鬧,春花似錦误窖、人聲如沸叮盘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柔吼。三九已至,卻和暖如春丙唧,著一層夾襖步出監(jiān)牢的瞬間愈魏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留培漏,地道東北人溪厘。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像牌柄,于是被迫代替她去往敵國和親畸悬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理珊佣,服務(wù)發(fā)現(xiàn)蹋宦,斷路器,智...
    卡卡羅2017閱讀 134,665評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法彩扔,類相關(guān)的語法妆档,內(nèi)部類的語法,繼承相關(guān)的語法虫碉,異常的語法贾惦,線程的語...
    子非魚_t_閱讀 31,641評論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,811評論 0 11
  • 轉(zhuǎn)自http://www.cnblogs.com/mcgrady/archive/2013/06/08/31277...
    WangYatao閱讀 6,564評論 1 4
  • 人偶師坐在門廳下,面色凝重敦捧,因為剛剛有一個線偶出去了须板。 地上的落葉很厚,一些干枯或是還帶著綠色的葉子打著旋落下來...
    東方南宮西門北冥閱讀 307評論 0 1