ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C# LINQ的简单使用

2020-12-31 09:31:47  阅读:199  来源: 互联网

标签:Console C# car Year LINQ item WriteLine 简单 var


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;//返回数据集
        }
    }
}

 

标签:Console,C#,car,Year,LINQ,item,WriteLine,简单,var
来源: https://blog.csdn.net/yue1453544229/article/details/112002439

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有