请选择 进入手机版 | 继续访问电脑版

C# LINQ的简单使用

[复制链接]
科达工艺 发表于 2021-1-1 18:30:23 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
1、LINQ查询语句有两种LINQ Query和LINQ Method
2、使用LINQ语句获取的变量用var,是一个动态变量。
3、LINQ语句适用的范围

  1. using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication10{    class Program    {        static void Main(string[] args)        {            List myCars = new List {                new Car(){VIN="A1",Make="BMW",Model="550I",StickerPrice=55000,Year=2012},                new Car (){VIN="A2",Make="Toyota",Model="4Runner",StickerPrice=35000,Year=2013},                new Car (){VIN="A3",Make="BMW",Model="745li",StickerPrice=75000,Year=2019},                new Car (){VIN="A4",Make="Ford",Model="Escape",StickerPrice=25000,Year=2019},                new Car (){VIN="A5",Make="BMW",Model="55i",StickerPrice=57000,Year=2010}            };            //LINQ query            var bwmsQuery = from car in myCars                       where car.Make == "BMW"                       && car .Year ==2012                       select car;            foreach (var car in bwmsQuery)            {                Console.WriteLine("bwmsQuery{0} {1}", car.Model, car.VIN);            }            var orderedCars = from car in myCars                              orderby car.Year descending                              select car;            foreach (var car in orderedCars)            {                Console.WriteLine("orderedCars {0} {1}",car .Year,car .VIN);            }            var newCars = from car in myCars                          where car.Make == "BMW"                          && car.Year == 2012                          select new { car.Make, car.Model };            //LINQ method            var bmwsMethod = myCars.Where(p => p.Make == "BMW" && p.Year == 2012);            foreach (var car in bmwsMethod)            {                Console.WriteLine("bmwsMethodResult {0} {1}", car.Model, car.VIN);            }                        var orderedCarsMethod = myCars.OrderBy(p => p.Year);  //升序分列            var orderedByDescending = myCars.OrderByDescending(p => p.Year);//降序分列            foreach (var car in orderedByDescending)            {                Console.WriteLine("orderedCarsMethod {0} {1}", car.Year, car.VIN);            }                       //找到筛选的第一个            var firstBMW = myCars.First(p => p.Make == "BMW");            Console.WriteLine(firstBMW.VIN);            var firstBMW2 = myCars.OrderByDescending(p => p.Year).First(p => p.Make == "BMW");            Console.WriteLine(firstBMW2.VIN);                        myCars.ForEach(p => p.StickerPrice -= 3000);            myCars.ForEach(p => Console.WriteLine("{0} {1:C}", p.VIN, p.StickerPrice));            Console.WriteLine(myCars.Exists(p=>p.Model=="4323I"));            Console.WriteLine(myCars .Sum(p=>p.StickerPrice));        }    }    class Car    {        public string VIN { get; set; }        public string Make { get; set; }        public string Model { get; set; }        public int StickerPrice { get; set; }        public int Year { get; set; }    }}
复制代码
Linq to DataSet 底子语法,对DataTable的操纵

  1. using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text; namespace linq_02_DataSet{    class Program    {        static void Main(string[] args)        {            DataSet ds = BuidDaSet();//得到数据集            DataTable dt = ds.Tables[0];//得到数据表            //查询表中所有记载            var query1 = from p1 in dt.AsEnumerable()                         select p1;            Console.WriteLine("======query1========");            foreach (var item in query1)            {                Console.WriteLine("姓名:{0} 性别:{1} 年事:{2}",item.Field("Name"),item.Field("Sex"),item.Field("Age"));               // Console.WriteLine($"姓名:{item["Name"]} " + $"性别:{item["Sex"]} " + $"年事:{item["Age"]}");            }             //查询所有人员            var query2 = from p1 in dt.AsEnumerable()                         select p1["Name"];            Console.WriteLine("======query2========");            foreach (var item in query2)            {                Console.WriteLine(item);            }             //指定条件查询,年事大于23并排序            var query3 = from p1 in dt.AsEnumerable()                         where p1.Field("Age") > 23                         orderby p1["Age"]                         select p1;            Console.WriteLine("======query3========");            foreach (var item in query3)            {                Console.WriteLine($"姓名:{item["Name"]} " + $"性别:{item["Sex"]} " + $"年事:{item["Age"]}");            }             //指定条件查询,年事大于20小于25的同学            var query4 = from p1 in dt.AsEnumerable()                         where p1.Field("Age") > 20                         where p1.Field("Age") < 25                         orderby p1["Age"] descending                         select p1;            Console.WriteLine("======query4========");            foreach (var item in query4)            {                Console.WriteLine($"姓名:{item["Name"]} " + $"性别:{item["Sex"]} " + $"年事:{item["Age"]}");            }             Console.ReadKey();        }        //内存中的Dataset数据集        private static DataSet BuidDaSet()        {            string[] nameStr = { "张三", "李四", "王武", "小红", "丽丽", "小白" };            string[] Sex = { "男", "男", "男", "女", "女", "女" };            int[] Age = { 21, 19, 22, 24, 29, 25 };            DataSet ds = new DataSet();//准备ds对象            DataTable dt = new DataTable();//数据表对象            ds.Tables.Add(dt);//把数据表添加到数据会集            //创建数据表效果:三列  姓名,性别,年事            dt.Columns.AddRange(                new DataColumn[]                {                    new DataColumn("Name",Type.GetType("System.String")),                    new DataColumn("Sex",Type.GetType("System.String")),                    new DataColumn("Age",Type.GetType("System.Int32")),                }                );            //把数组数据放入数据表中            for (int i = 0; i < nameStr.Length; i++)            {                //根据编号,新建数据表中的一行,产生一行数据                DataRow row = dt.NewRow();                row["Name"] = nameStr[i];                row["Sex"] = Sex[i];                row["Age"] = Age[i];                dt.Rows.Add(row);//把新建行数据添加到表的集合中            }            return ds;//返回数据集        }    }}
复制代码
 

来源:https://blog.csdn.net/yue1453544229/article/details/112002439
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )