1. 程式人生 > 其它 >動態規劃-2-所有結點對最短路徑

動態規劃-2-所有結點對最短路徑

什麼是Linq?

語言整合查詢

Linq的作用?

簡化查詢

Linq的分類:

Linq to object(陣列,list集合) :linq操作記憶體集合,記憶體裡面的資料

Linq to sql(查詢資料庫用) : linq操作資料庫,資料庫裡的資料

Linq to xml(查詢xml檔案) : linq 操作xml

Linq語法

var 返回值=from 變數名 in 資料來源(可以是資料庫,也可以是集合)
orderby 排序
where 變數名.xx=””
join連線查詢
select返回

Linq呼叫方式

1,通過擴充套件方式呼叫
List<Student> StudentsNew2 = Students.Where((a) => { return a.Age >= 20; }).ToList();


2,通過表示式方式


練習:通過Linq對集合進行篩選排序等

1,建立一個物件集合

List<UserInfo> myList = new List<UserInfo>();
myList.Add(new UserInfo() { name = "李清照", age = 23, address = "宋" });
myList.Add(new UserInfo() { name = "黃月英", age = 18, address = "三國" });
myList.Add(new UserInfo() { name = "黃忠", age = 50, address = "三國" });
myList.Add(new UserInfo() { name = "黃某", age = 27, address = "三國" });
myList.Add(new UserInfo() { name = "黃某", age = 35, address = "三國" });

2,根據姓名查詢全部欄位

var lq = from u in myList
    where u.name == "黃某"
    select u;
//將查詢結果返回
List<UserInfo> newList = lq.ToList();

3,根據地址查詢並排序而且返回兩個欄位(通過一個新物件來返回)

var lq = from u in myList
    orderby u.age
    where u.address == "三國"
    select new UserInfo()
{
    name = u.name,
    age = u.age
};
//將查詢結果返回
List<UserInfo> newList = lq.ToList();

4,根據姓名模糊查詢並按年齡降序排序而且返回兩個欄位(使用匿名物件返回)

//匿名物件適用於只取資料不傳遞資料
var lq = from u in myList
    orderby u.age descending
    where u.name.Contains("黃某")
    select new
{
    name = u.name,
    age = u.age
};
foreach (var item in lq)
{
    Console.WriteLine(string.Format("姓名:{0},年齡:{1},地址:", item.name, item.age));
}