LinQ資料查詢,聯合查詢 委託擴充套件

2021-07-16 06:52:18 字數 2636 閱讀 7868



namespace linq資料查詢

public string name

public int power  }}

namespace linq資料查詢

public string  name

public int age

public string menpai

public string kongfu

public int level }}

先建立兩個類

namespace linq資料查詢

,new martiaartsmaster(),

new martiaartsmaster(),

};var kongfulist =  new list()

,new kongfu () ,

new kongfu () ,

}; //var res =new list();   //先不使用linq ,建乙個列表用來儲存結果

//foreach (var temp in masterlist)              //var 乙個臨時變數   查詢等級大於8的 武林高手

////}

// var res = masterlist.where(m => m.level > 8).orderby(m => m.level).thenby(m => m.age);

//雙排列 先orderby 然後thenby 排序

//var res = from m in masterlist     //form後面設定查詢的集合,m是集合中的元素

//          where m.level > 8                //where 是元素的條件

//          select m.name ;                              //表示m的結果返回    只輸出名字

// 聯合查詢 現在masterlist中查詢 後和kongfulist中的每個結果對應3*3=9

//var res = from m in masterlist

//         from k in kongfulist

//        where m.kongfu == k.name && k.power > 90  //限制條件 所學功夫的名字

//      //  orderby m.age descending                             //表示反向排列           

//        orderby m.level >8 && m.menpai=="丐幫"  //按照多個字段進行排序,如果欄位的屬性相同,就按照第二個屬性

//         select m;   //所學功夫大於90 的大俠

//select new ;  //輸出2個結果

//聯合查詢的超級寫法   這種用法很簡潔,但是很難理解,因為有委託lamder表示式的純在,記住這用法就好

//  var res = masterlist.selectmany(m=>kongfulist ,(m,k) =>new )

//   .where (x=>x.master.kongfu==x.kongfu.name&&x.kongfu .power>90);//x代表(m,k),對master和kongfu限制

//join  on  聯合查詢

//var res = from m in masterlist

//          join k in kongfulist on m.kongfu equals k.name

//          where k.power > 90

//          select new ;

//連個分組查詢  能夠顯示有多少人學一種功夫

//var res = from k in kongfulist

//          join m in masterlist on k.name equals m.kongfu

//          into groups

//          orderby groups.count()

//          select new ;

// 按照功夫分組,顯示的是學功夫人的總數,功夫名稱

//var res = from m in masterlist

//          group m by m.kongfu

//              into g

//              select new ;

/////  bool res = masterlist.all(m => m.menpai == "丐幫");     //判斷所有元素滿足條件

// bool res = masterlist.any(m => m.menpai == "丐幫");  //判斷是否有乙個元素滿足條件

foreach (var temp in res)                              //遊例每個標量,輸出的是類名而不是資料,必須轉換成tostring方法格式化    

console.readkey();

//用resharp 的alt+insert裡的自動tostring方法完成 }

} }



LINQ資料查詢

首先需要武林高手和武學類 武林高手類 武林高手類 class martialartsmaster public string name public int age public string meipai public string gongfu public int level public o...

DQL資料查詢語言(聯合查詢)

關鍵字 union 聯合,合併 將多條語句的查詢結果合併成乙個結果 案例一 查詢部門編號大於90或郵箱中包含a的員工資訊 select from employees where department id 90or email like a 使用union聯合查詢 select from emplo...

LINQ資料查詢 Resharper外掛程式使用

linq資料查詢是查詢資料的集合。和sql語句類似 linq關鍵字 from 指定資料來源和範圍變數 where 根據布林表示式 由邏輯與 或 等組成 從資料來源中篩選元素 select 指定查詢結果中的元素所具有的型別或表現形式 group 對對查詢結果按照鍵值進行分組 into 提供乙個標示符,...