C# LINQ的简单使用

1、LINQ查询语句有两种LINQ Query和LINQ Method

2、使用LINQ语句获取的变量用var,是一个动态变量。

3、LINQ语句适用的范围

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<Car> myCars = new List<Car> {
                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的操作

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<string>("Name"),item.Field<string>("Sex"),item.Field<int>("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<int>("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<int>("Age") > 20
                         where p1.Field<int>("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;//返回数据集
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值