Linq用法筆記

一、什么是Linq?

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

LINQ是一種用來進行數據訪問的編程模型,Linq可以用相同的語法訪問不同的數據源,比如xml、數據庫、注冊表、事件日志等。

二、Linq包含哪些部分?

4418040-efe4890e641d1dcd

1、Linq to Sql組件:可以查詢關系型數據庫的數據,并可以提供其他操作,如檢索、插入、修改、刪除、排序、聚合、分區等。

2、Linq to DataSet組件:查詢DataSet對象中的數據。

3、Linq to Object組件:可以查詢IEnumerable或是IEnumerable 集合對象,即能夠查詢任何可以枚舉的集合,如數組(Array和ArrayList)、泛型字典Dictinary等,以及用戶自定義的集合,而不需要使用Linq提供程序或API。

4、Linq to XML組件:查詢和操作XML結構的數據。

5、Linq to Entities:是 Entity Framework 的一部分并且取代 LINQ to SQL 作為在數據庫上使用 LINQ 的標準機制。Entity Framework 是行業領先的對象-關系映射(ORM)系統。可以和多種數據庫一起使用,并支持各種靈活、復雜的數據模型。

三、Linq的一些用法

1、簡單的LINQ查詢

static void Main(string[] args)

{

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

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

where m >= 60

select m;

foreach (int mark in good)//循環每一個結果

{

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

}

}

2、使用Lambda表達式的LINQ查詢

static void Main(string[] args)

{

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

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

foreach (int mark in good)//循環每一個結果

{

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

}

}

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 //調用對象的方法

select s.Name;

foreach (string name in names)//循環輸出結果

{

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、容易上手,學習成本低

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

3、更快開發錯誤更少的應用程序。

4、可以很容易的合并數據源。

5、讓新開發者開發效率更高。

6、任何對象或數據源都可以定制實現Linq適配器,為數據交互帶來真正方便。

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

閱讀原文

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272786.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272786.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272786.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用例圖練習

轉載于:https://www.cnblogs.com/fzuyzy/p/4925246.html

java excel row遍歷空_Java poi讀取,寫入Excel,處理row和cell可能為空的情況

首先需要導入包import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;然后寫方法&a…

JQuery常用選擇器總結

作為網站開發者來說&#xff0c;不可避免的需要和頁面打交道&#xff0c;很多時候都需要去操作一些頁面上的元素&#xff0c;掌握常用的Jquery選擇器是十分有必要的。現從網上整理一些常用的Jquery選擇器&#xff0c;希望能給大家帶來一些開發上的便利。一、基本選擇器&#xf…

java 常量 內存分配_Java內存分配之堆、棧和常量池

寄存器&#xff1a;最快的存儲區&#xff0c;位于不同于其他存儲區的地方——處理器內部。寄存器的數量極其有限&#xff0c;所以寄存器由編譯器根據需求 進行分配。你不能直接控制&#xff0c;也不能在程序中感覺到寄存器存在的任何跡象。棧&#xff1a;存放基本類型的數據和對…

三種SQLServer分頁查詢語句筆記

作為程序員來說&#xff0c;與數據庫打交道是十分頻繁的分頁查詢是一個開發者必須掌握的基本知識點&#xff0c;目前整理了下面三種SQLServer分頁查詢語句的寫法&#xff0c;僅供參考。一、Top Not IN 方式&#xff08;查詢靠前的數據較快&#xff09;語法格式&#xff1a;sele…

sqlserver2008r2安裝

轉載于:https://www.cnblogs.com/sprinng/p/4932739.html

JQuery七個常犯的錯誤

1、 亂用選擇器JQuery選擇器調用代價很大&#xff0c;反復調用效率更低。應采用緩存對象的方法或采用鏈式調用的方式。//錯誤的寫法$("#button").click(function(){ $(#list li).addClass(strong); $(#list li).css(color,red);});//正確的寫法$("#button…

java流讀取xml_使用FileInputStream(用于Java)讀取XML文件?

這是交易.對于我的項目,我必須使用Java和XStream對隨機樹進行序列化和反序列化.我的老師制作了Tree / RandomTree算法,所以我不必擔心.我不知道該怎么做是這樣的&#xff1a;我使用FileInputStream來讀/寫我序列化和反序列化的xml文件,但是當我反序列化時,我不知道用于讀取文件…

后臺尋路系統的大體思路與流程

總的思路就是: 1, 通過前臺unity的navigation的的接口: 獲得頂點和三角形集合數據 2, 將前臺的mesh數據轉換成標準的obj格式數據 3. 強obj mesh數據經過一系列轉換和優化, 生成recastnavigation插件尋路模塊detour需要的導航數據 故制作了工具MakeNavmeshData生成detour需要的…

關于WCF、WebAPI、WCFREST、WebService之間的區別總結

在.net平臺下&#xff0c;有大量的技術讓你創建一個HTTP服務&#xff0c;像Web Service&#xff0c;WCF&#xff0c;現在又出了Web API。在.net平臺下&#xff0c;你有很多的選擇來構建一個HTTP Services。我分享一下我對Web Service、WCF以及Web API的看法。一、Web Service1、…

java 程序是由什么組成的 java_從零開始的JAVA -2. java程序的構成及命名規則

1.public classYD2.{3. public static voidmain (string args[ ])4. {5. System.out.println("我是一名學習JAVA的新人&#xff01;");6. }7.}第一行 public 代表這是一個公共類(可省略) class 是聲明一個類&#xff0c;在他后面的YD 就是類名(類名可以隨意寫)第二行…

你應該知道的jQuery技巧【收藏】

jQuery的存在&#xff0c;讓學習前端開發的人感到前端越來越容易入門了&#xff0c;用簡單的幾行代碼就可以實現需求&#xff0c;但是&#xff0c;你真的會用jQuery么&#xff0c;當代碼運行 后無法看到自己預期的效果&#xff0c;是不是覺得jQuery出了問題&#xff0c;其實&am…

LINQ表達式用法整理

收集一些Linq表達式中的一些比較常用的寫法&#xff0c;希望能給大家工作當中帶來一些便利。1. Where子句條件過濾結果集型&#xff08;集合數據使用這種&#xff0c;譬如數組、列表數據&#xff0c;同樣適用于Datatable等多列數據集&#xff09;類SQL語句的寫法&#xff0c;對…

Eclipse is running in a JRE, but a JDK is required 解決方法(轉)

轉自&#xff1a;http://comeonbabye.iteye.com/blog/1186239 安裝Maven后每次啟動出現警告信息: Eclipse is running in a JRE, but a JDK is requiredSome Maven plugins may not work when importing projects or updating source folders. 分兩步解決問題: 1. 檢查Eclipse正…

java線程歸并排序_Java-歸并排序 - FeanLau的個人空間 - OSCHINA - 中文開源技術交流社區...

public class MergeSort {static int number0;public static void main(String[] args) {int[] a {26, 5, 98, 108, 28, 99, 100, 56, 34, 1 };printArray("排序前&#xff1a;",a);MergeSort(a);printArray("排序后&#xff1a;",a);}private static voi…

收集一些優秀的DoNet開源項目

Paste_Image.pngJson.NEThttp://json.codeplex.com/ Json.Net是一個讀寫Json效率比較高的.Net框架.Json.Net 使得在.Net環境下使用Json更加簡單。通過Linq To JSON可以快速的讀寫Json&#xff0c;通過JsonSerializer可以序列化你的.Net對象。讓你輕松實現.Net中所有類型(對象,基…

git初探

1 Linux下Git和GitHub環境的搭建 第一步&#xff1a; 安裝Git&#xff0c;使用命令 “sudo apt-get install git” 第二步&#xff1a; 到GitHub上創建GitHub帳號 第三步&#xff1a; 生成ssh key&#xff0c;使用命令 “ssh-keygen -t rsa -C "your_emailyouremail.com&q…

java編程思想 初始化_《java編程思想》_第五章_初始化與清理

初始化和清理是涉及安全的兩個問題&#xff0c;java中采用了構造器&#xff0c;并額外提供了“垃圾回收器”&#xff0c;對于不再使用的內存資源&#xff0c;垃圾回收器能自動將其釋放。一、用構造器確保初始化java中&#xff0c;通過提供構造器&#xff0c;類的設計者可以確保…

OkHttp 上手

OkHttp 上手 優點 快、節省帶寬。支持 HTTP&#xff0f;2 和 SPDY。HTTP&#xff0f;2 和 SPDY 允許對同一個主機的所有請求&#xff0c;使用一個 socket。如果不支持 SPDY 的話&#xff0c;可以用連接池減少請求等待時間。GZIP 縮小傳輸大小。緩存響應&#xff08;response ca…

關于Net開發中一些SQLServer性能優化的建議

一、 ExecuteNonQuery和ExecuteScalar 對數據的更新不需要返回結果集&#xff0c;建議使用ExecuteNonQuery。由于不返回結果集可省掉網絡數據傳輸。它僅僅返回受影響的行數。如果只需更新數據用ExecuteNonQuery性能的開銷比較小。 ExecuteScalar它只返回結果集中第一行的第一列…