日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

LINQ投影操作符Select與限制操作符where介紹_C#教程

作者:.NET開發菜鳥 ? 更新時間: 2022-04-30 編程語言

一、什么是LINQ?它可以用來做什么

語言集成查詢(Language Integrated Query,LINQ)是一系列標準查詢操作符的集合,這些操作符幾乎對每一種數據源的導航、過濾和執行操作都提供了底層的基本查詢架構。

LINQ可查詢的數據源包括XML(可使用LINQ TO XML)、關系數據(使用LINQ TO SQL,及先前的DLINQ)、ADO.NET DataSet(使用LINQ TO DataSet),以及內存中的數據。

二、投影操作符:Select

Select操作符對單個序列或集合中的值進行投影。所謂投影,比如有一個數據集,想用LINQ語法去操作數據集,會寫一個LINQ的表達式,表達式會把數據集合中的數

據簡單的投影到一個變量中,并且可以通過這個變量去篩選數據。

示例:

Employees類

public class Employees
{
        public Guid Id { get; set; }
        public string Name { get; set; }
        public int Sex { get; set; }
        public string CompanyName { get; set; }
}
class Program
{
        static void Main(string[] args)
        {
            //使用集合初始化器給集合賦值
            List emp = new List 
            { 
               new Employees(){Id=Guid.NewGuid(),Name="張三",Sex=0,CompanyName="xx技術有限公司"},
               new Employees(){Id=Guid.NewGuid(),Name="李四",Sex=0,CompanyName="xx培訓"},
               new Employees(){Id=Guid.NewGuid(),Name="王五",Sex=0,CompanyName="xx集團"}
            };

            //查詢語法:不能省略最后的select
            var query = (from p in emp where p.Name.StartsWith("王") select p).FirstOrDefault();

            //查詢方法:設計到Lambda表達式,全部返回 可以省略最后的select 延遲加載
            var query1 = emp.Where(p => p.Name.StartsWith("王")).Select(e => new { e.Name,e.CompanyName});

            //查詢方法:返回匿名類
            var query2 = emp.Where(p => p.Name.StartsWith("王")).Select(p => p);
            foreach (var item in query1)
            {
                Console.WriteLine(item.Name);
            }
            Console.ReadKey();
        }
}

三、限制操作符where

where是限制操作符,它將過濾標準應用在序列上,按照提供的邏輯對序列中的數據進行過濾。

where操作符不啟動查詢的執行。當開始對序列進行遍歷時才開始執行,此時過濾條件將被應用到查詢中。

示例:

//where限制操作符:使用延遲加載
var q = teachers.SelectMany(p => p.Students).Where(s => s.Score < 60).Select(a => new { name = a.Name });
foreach (var item in q)
{
     Console.WriteLine("姓名:"+item.name);
}

原文鏈接:https://www.cnblogs.com/dotnet261010/p/6822559.html

欄目分類
最近更新