国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

List擴展方法匯總(僅備注)

2019-11-17 02:45:12
字體:
來源:轉載
供稿:網友

List擴展方法匯總(僅備注)

不管在c/s還是b/s的c#語言開發程序中,經常會用到List的擴展方法,尤其在json格式的數據和服務端交互越來越流行,很多時候總是在開發使用到的時候才去搜索有些擴展方法或者linq的用法,在這里,我們只是做一個備注

因為linq沒有必要系統的學習,我們只要簡單的在list的擴展會使用即可,至少我只這么認為的

本文沒有任何技術性,只是備注list或者list泛型的擴展方法,不至于在您不熟悉但是又使用到的時候到處搜索

 1  public sealed class Employee 2     { 3         public string Name { get; set; } 4         public double Salary { get; set; } 5         public short Dependents { get; set; } 6     } 7     public class Test 8     { 9         public void FunTest()10         {11             var employees = new List<Employee>12              {13                     new Employee { Name = "Bob", Salary = 1, Dependents = 0 },14                     new Employee { Name = "Sherry", Salary = 2, Dependents = 1 },15                     new Employee { Name = "Kathy", Salary = 3, Dependents = 0 },16                     new Employee { Name = "Joe", Salary = 4, Dependents = 2 },17                     new Employee { Name = "Bob", Salary = 5, Dependents = 0 },18                     new Employee { Name = "Bob", Salary = 6, Dependents = 0 }19              };20             //泛型方法的類型參數是可以省略的21 22             //所有求和23             double sumSalary = employees.Sum<Employee>(e => e.Salary);//21.024             //【linq方式】所有求和25             var sumSalary2 = (from v in employees select v).Sum(e => e.Salary);//21.026             //按照某一條件求和27             double sumSalaryFilter = employees.Where<Employee>(e => e.Name == "Bob").ToList().Sum(e => e.Salary);//12.028             //【linq方式】按照某一條件求和29             var sumSalaryFilter2 = (from v in employees where v.Name == "Bob" select v).Sum(e => e.Salary);//12.030 31             //選擇數據而已,即返回自定義改變后的新的投影的數據列表(無法改變源數據)32             var selectChangedNameList = employees.Select<Employee, Employee>(e => { return new Employee { Name = "Bob" }; }).ToList();33             //【linq方式】選擇數據而已,即返回自定義改變后的新的投影的數據列表(無法改變源數據)34             var selectChangedNameList2 = (from v in employees select new { Name = "Bob", Salary = v.Salary, Dependents = v.Dependents }).ToList();35             //選擇返回某一列的清單投影的數據列表36             var selectSalaryList = employees.Select<Employee, double>(e => { return e.Salary; }).ToList();37 38             //查找符合條件的第一個元素39             Employee employee1 = employees.Find(e => e.Name == "Bob");40             //【linq方式】查找符合條件的第一個元素41             Employee employee2 = (from v in employees where v.Name == "Bob" select v).First();42             //不用lambda方式篩選符合條件的元素列表43             PRedicate<Employee> aaaa = new Predicate<Employee>(fun1);44             List<Employee> employee1List = employees.FindAll(aaaa);45             //lambda方式篩選符合條件的元素列表46             List<Employee> employee2List = employees.FindAll(e => e.Name == "Bob");47             //【linq方式】方式篩選符合條件的元素列表48             List<Employee> employee2List2 = (from v in employees where v.Name == "Bob" select v).ToList();49             //max,min,平均值,篩選滿足某條件的max和min已經使用linq方式50             employees.Max(e => e.Salary);51             employees.Min(e => e.Salary);52             (from v in employees select v).Max(e => e.Salary);53             (from v in employees select v).Min(e => e.Salary);54             double maxSalaryFilter = employees.Where<Employee>(e => e.Name == "Bob").ToList().Max(e => e.Salary);55             //簡單的運算,比如列表總的相加的值56             var aggregateEmployee = employees.Aggregate<Employee>((result, next) => new Employee { Salary = result.Salary + next.Salary });57             //某一列的不重復的匯總58             var groupEmployees = employees.GroupBy(e => new { e.Name }).Select(g => new { g.Key, Count = g.Count() }).ToList();59             var groupEmployees1 = employees.GroupBy(e => e.Name).Select(e => new { Name = e.Key, sumSalary = e.Sum(d => d.Salary) }).ToList();60             var groupEmployees2 = (from v in employees group v by v.Name into g select new { Name = g.Key, SumSalary = g.Sum(d => d.Salary) }).ToList();61             //查詢滿足某一條件的所有數據62             IEnumerable<Employee> employee3List = employees.Where<Employee>(e => e.Name == "Bob");63             List<Employee> employee4List = employees.Where<Employee>(e => e.Name == "Bob").ToList();64             employee3List = employee4List as IEnumerable<Employee>;65 66             Console.WriteLine("adfadsfasdfasdf");67         }68 69 70         private bool fun1(Employee e)71         {72             return (e.Name == "Bob");73         }74     }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洮南市| 阿克苏市| 五家渠市| 赤城县| 台东县| 白玉县| 蓝田县| 嘉禾县| 南昌市| 新津县| 大安市| 隆化县| 扶风县| 梧州市| 唐山市| 宁安市| 宁都县| 彭阳县| 军事| 万荣县| 苏尼特右旗| 南乐县| 大庆市| 三明市| 鄂伦春自治旗| 天台县| 屏东市| 甘孜县| 乌拉特前旗| 板桥市| 信丰县| 临清市| 台东县| 南和县| 呼玛县| 霍州市| 黄山市| 赤水市| 类乌齐县| 闵行区| 庄河市|