linq學習以及相應的Lambda 擴充套件

2021-10-04 07:15:23 字數 3763 閱讀 6975

基本設定

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace linqtest

public string name

public int age

public string menpai

public string kongfu

public int level

public override string tostring()

, name: , age: , menpai: , kongfu: , level: ", id, name, age, menpai, kongfu, level);}}

}

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace linqtest

public string name

public int power

public override string tostring()

, name: , power: ", id, name, power);}}

}

初始化資訊

//初始化武林高手

var masterlist = new list()

,new martialartsmaster() ,

new martialartsmaster() ,

new martialartsmaster() ,

new martialartsmaster() ,

new martialartsmaster() ,

new martialartsmaster() ,

new martialartsmaster() ,

new martialartsmaster() ,

new martialartsmaster() ,

new martialartsmaster()

};//初始化武學

var kongfulist = new list()

,new kongfu() ,

new kongfu() ,

new kongfu() ,

new kongfu() ,

new kongfu()

};

下面我們開始 測試功能

//查詢  林平之 的資訊

//var list = from kfmaster in masterlist

//           where kfmaster.name == "林平之" && kfmaster.level==7

//           select kfmaster;

//var list = masterlist.where(t=>t.name== "林平之"&&t.level==7);

//聯合查詢,類似於笛卡爾積

//查詢 power》90 的高手資訊

//var list = from m in masterlist

//           from k in kongfulist

//           where m.kongfu == k.name && k.power > 90

//           select m;

//var list = masterlist.selectmany(m=>kongfulist,(m,k)=>new );// 這個會秀出 笛卡爾積

//撈取高手中丐幫的資訊,先按照等級排序公升序,再按照年齡降序

//var list = masterlist.where(m=>m.menpai=="丐幫").orderby(m=>m.level).thenby(m=>m.age);

var list = from m in masterlist

where m.menpai == "丐幫"

//join on    master join kongfu,帶出kongfu 的power

//var list = from m in masterlist

//           join k in kongfulist

//           on m.kongfu equals k.name   //on的時候  要用equals

//var list = masterlist.groupby(m=>m.kongfu);//groupby單個屬性

//lambda 根據多個屬性分組,   再對分組後的集合  再次對映,獲取分組的key 和 每個分組的數量

//var list = masterlist.groupby(m=>new ).select(s=>new );//groupby多個屬性

//var list = from p in masterlist

//           group p by new

//      into g

//           select new ;

foreach (var info in list)

或者var list = from p in masterlist

into groups   //分組

orderby groups.count()  // 這個可以獲得數量

select new ;   //根據kongfu分組

變數以及相應的型別

在程式中,有時我們需要對2個資料進行求和,那麼該怎樣做呢?大家模擬一下現實生活中,比如去超市買東西,往往咱們需要乙個菜籃子,用來進行儲存物品,等到所有的物品都購買完成後,在收銀台進行結賬即可 如果在程式中,需要把2個資料,或者多個資料進行求和的話,那麼就需要把這些資料先儲存起來,然後把它們累加起來即...

型別轉換以及相應的溢位解決

容量小的型別可以自動轉化為容量大的資料型別 容量所表示的就是資料型別表示的範圍的大小 int a 324 long b a double c a c b a b long 容量比int大,所以不可轉化 long e 3.24f float 型別的資料不可以轉化為long型別,float的容量更大 f...

osgi服務報錯以及相應的解決方法

自己在專案中配置相關的osgi服務,然後不能正常啟動,首先是看容器的日誌,日誌報錯如下 第二種情況就是要依賴的元件沒有想外提供服務,導致他不能使用該元件的服務,修改如下則可以 com.gzydt.license.base.persist,com.gzydt.license.base.persist....