最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

LINQ投影操作符Select與限制操作符where介紹

 更新時間:2022年02月28日 10:50:07   作者:.NET開發(fā)菜鳥  
這篇文章介紹了LINQ投影操作符Select與限制操作符where,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

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

語言集成查詢(Language Integrated Query,LINQ)是一系列標(biāo)準(zhǔn)查詢操作符的集合,這些操作符幾乎對每一種數(shù)據(jù)源的導(dǎo)航、過濾和執(zhí)行操作都提供了底層的基本查詢架構(gòu)。

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

二、投影操作符:Select

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

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

示例:

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<Employees> emp = new List<Employees> 
            { 
               new Employees(){Id=Guid.NewGuid(),Name="張三",Sex=0,CompanyName="xx技術(shù)有限公司"},
               new Employees(){Id=Guid.NewGuid(),Name="李四",Sex=0,CompanyName="xx培訓(xùn)"},
               new Employees(){Id=Guid.NewGuid(),Name="王五",Sex=0,CompanyName="xx集團(tuán)"}
            };

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

            //查詢方法:設(shè)計到Lambda表達(dá)式,全部返回 可以省略最后的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是限制操作符,它將過濾標(biāo)準(zhǔn)應(yīng)用在序列上,按照提供的邏輯對序列中的數(shù)據(jù)進(jìn)行過濾。

where操作符不啟動查詢的執(zhí)行。當(dāng)開始對序列進(jìn)行遍歷時才開始執(zhí)行,此時過濾條件將被應(yīng)用到查詢中。

示例:

//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);
}

到此這篇關(guān)于LINQ投影操作符Select與限制操作符where的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

德钦县| 嫩江县| 泸西县| 梨树县| 沙河市| 石屏县| 灵宝市| 怀柔区| 邻水| 元阳县| 河津市| 深州市| 东宁县| 雷山县| 莆田市| 静海县| 溧阳市| 泰安市| 永丰县| 镇平县| 滨州市| 济源市| 县级市| 开鲁县| 台北县| 璧山县| 临沭县| 固镇县| 石家庄市| 资溪县| 米脂县| 绥阳县| 柳河县| 比如县| 封丘县| 临洮县| 万载县| 永仁县| 望江县| 普安县| 西吉县|