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

LINQ基礎(chǔ)之From和GroupBy子句

 更新時(shí)間:2022年04月20日 10:42:04   作者:農(nóng)碼一生  
這篇文章介紹了LINQ使用From和GroupBy子句的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

FROM子句

一、簡(jiǎn)單FROM子句

獲取數(shù)據(jù)源:

var queryAllCustomers =
        from cust in Customers
        select cust;

分析:

查詢表達(dá)式必須以from子句開頭
例子中cust是范圍變量,范圍變量類似于foreach循環(huán)中的迭代變量,但在查詢表達(dá)式中,實(shí)際上不發(fā)生迭代。執(zhí)行查詢時(shí),范圍變量將用作對(duì)Customers中的每個(gè)后續(xù)元素的引用。因?yàn)榫幾g器可以推斷cust的類型,所以不必顯示指定此類型。
Customers是數(shù)據(jù)源,實(shí)現(xiàn)了IEnumerable或IEnumerable(T)或其派生接口的

二、復(fù)合FROM子句

查詢出成績(jī)有90分以上的學(xué)生,得到他們的名字和成績(jī)

//數(shù)據(jù)源
 IList<Student> students = new List<Student>
{
    new Student{ Name="Kevin", Score=new List<int>{89,93,88,78}},
    new Student{ Name="Jackie",Score=new List<int>{92,87,83,91}},
    new Student{ Name="Helen",Score=new List<int>{53,76,72,62}}
};
            //所有的Linq查詢操作都由以下三個(gè)不同的操作組成:
            //1.獲得數(shù)據(jù)源
            //2.創(chuàng)建查詢
            //3.執(zhí)行查詢

            //使用復(fù)合from子句查詢命令
            var getStudent =
                    from student in students
                    from score in student.Score
                    where score > 90
                    select new { Name = student.Name, Score = score };

            foreach (var st in getStudent)
            {
                Console.WriteLine("NAME:{0},SCORE:{1}",st.Name,st.Score);
            }

分析:

我們可以看到學(xué)生對(duì)象中有個(gè)Score屬性,Score屬性本身就是List集合,這時(shí)候我們就要用到復(fù)合from子句進(jìn)行查詢了。首先遍歷學(xué)生對(duì)象集合中的每個(gè)學(xué)生對(duì)象,然后在用另一個(gè)from子句,對(duì)每個(gè)學(xué)生對(duì)象中的Score屬性進(jìn)行遍歷,篩選出含有90分以上的學(xué)生信息進(jìn)行返回。

GroupBy子句

一、簡(jiǎn)介

group子句返回一個(gè)IGrouping(T Key,T element)對(duì)象序列,編譯時(shí),group子句被轉(zhuǎn)換成對(duì)GroupBy方法的調(diào)用。

二、案例

案例一:

根據(jù)首字母分組,并打印到控制臺(tái)

//數(shù)據(jù)源
string[] fruits = { "apple", "banana", "peach", "orange", "melon", "lemon" };

//分組查詢的查詢語句
var query = from f in fruits
            group f by f[0];

//執(zhí)行查詢
foreach (var letters in query)
{
    Console.WriteLine("words that start with letter:" + letters.Key);
    foreach (var word in letters)
    {
        Console.WriteLine(word);
    }
}

分析:

首先遍歷字符串?dāng)?shù)組中的每個(gè)字符串,然后根據(jù)每個(gè)字符串的首字母進(jìn)行分組,返回結(jié)果.

案例二:

var query = from f in fruits
             group f by f[0] into g
             where g.Key == 'p' || g.Key == 'b'
             select g;

分析:

如果您想要對(duì)每個(gè)組執(zhí)行附加查詢操作,則可以使用into上下文關(guān)鍵字指定一個(gè)臨時(shí)標(biāo)識(shí)符。使用into時(shí),必須繼續(xù)編寫該查詢,并最終用一個(gè)select語句或另一個(gè)group子句結(jié)束該查詢。

案例三:

string[] strs = { "胡廣成", "張國(guó)榮", "劉德華", "故國(guó)冰封", "萬里雪飄", "AAA", "胡翰軒", "張杰" };
            var list5 = strs
                //.Where(a => a.Length == 3)
                .Select(item => item)
                .GroupBy(item => item.Length);//分組   分組依據(jù)是字符串的長(zhǎng)度
            foreach (var item in list5)
            {
                Console.WriteLine("----------------");
                Console.WriteLine($"分組字段是{item.Key}");  //item.Key是分組依據(jù) 顯示分組字段
                foreach (var items in item)//內(nèi)層循環(huán)遍歷分組項(xiàng)
                {
                    Console.WriteLine(items);
                }
            }

分析:

按照名字的長(zhǎng)度進(jìn)行分組顯示。

三、多字段分組示例

GroupBy(x => new { x.a , x.b, x.c }).Select( x=> ( new Class名 { a=x.Key.a , b=x.Key.b , c = x.Key.c } ))

到此這篇關(guān)于LINQ使用From和GroupBy子句的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#創(chuàng)建WebService接口并連接的全過程

    C#創(chuàng)建WebService接口并連接的全過程

    工作時(shí)遇到需要請(qǐng)求客戶的接口返回?cái)?shù)據(jù),要求使用WebService,借此機(jī)會(huì)記錄一下,下面這篇文章主要給大家介紹了關(guān)于C#創(chuàng)建WebService接口并連接的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • C#清理非托管對(duì)象實(shí)例分析

    C#清理非托管對(duì)象實(shí)例分析

    這篇文章主要介紹了C#清理非托管對(duì)象的方法,結(jié)合實(shí)例形式詳細(xì)分析了C#清理非托管對(duì)象釋放資源的相關(guān)原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-02-02
  • 詳細(xì)介紹C#之文件校驗(yàn)工具的開發(fā)及問題

    詳細(xì)介紹C#之文件校驗(yàn)工具的開發(fā)及問題

    目前校驗(yàn)文件使用最多的是MD值和SHA值,不外乎有些使用CRC,前段時(shí)間微軟發(fā)布了VisualStudio正式版,win鏡像,微軟官方給出的校驗(yàn)方式都是校驗(yàn)文件的SHA值。下面詳細(xì)介紹C#之文件校驗(yàn)工具的開發(fā)及問題,需要的朋友可以參考下
    2015-07-07
  • C#實(shí)現(xiàn)SQL批量插入數(shù)據(jù)到表的方法

    C#實(shí)現(xiàn)SQL批量插入數(shù)據(jù)到表的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)SQL批量插入數(shù)據(jù)到表的方法,涉及C#批量操作SQL的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • OpenXml合并Table單元格代碼實(shí)例

    OpenXml合并Table單元格代碼實(shí)例

    在本篇文章里小編給大家整理了關(guān)于OpenXml合并Table單元格的相關(guān)實(shí)例詳解,需要的朋友們參考下。
    2019-08-08
  • C#委托用法詳解

    C#委托用法詳解

    本文詳細(xì)講解了C#中委托的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • C#編程高并發(fā)的幾種處理方法詳解

    C#編程高并發(fā)的幾種處理方法詳解

    這篇文章主要為大家詳細(xì)介紹了C#編程高并發(fā)的幾種處理方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C# 中使用 Exceptionless的方法

    C# 中使用 Exceptionless的方法

    這篇文章主要介紹了C# 中使用 Exceptionless的方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-12-12
  • LZW壓縮算法 C#源碼

    LZW壓縮算法 C#源碼

    本文分享了一個(gè)LZW壓縮算法的C#源碼,有需要的朋友可以參考一下。
    2016-06-06
  • C#帶你玩掃雷(附源碼)

    C#帶你玩掃雷(附源碼)

    這篇文章主要介紹了C#帶你玩掃雷(附源碼),詳細(xì)的介紹實(shí)現(xiàn)掃雷的方法,具體一定的參考價(jià)值,有興趣的可以了解一下
    2017-10-10

最新評(píng)論

专栏| 彭州市| 阿合奇县| 多伦县| 溧水县| 汪清县| 汝州市| 新和县| 蒙阴县| 石首市| 盘山县| 霞浦县| 彰化县| 福泉市| 华安县| 洪湖市| 阿克陶县| 柏乡县| 信阳市| 东乡县| 班玛县| 南川市| 巴林右旗| 通榆县| 贵德县| 阿合奇县| 庆元县| 南漳县| 柘荣县| 南京市| 阿城市| 遵化市| 七台河市| 隆昌县| 定州市| 延边| 页游| 福建省| 克山县| 宜城市| 蕉岭县|