国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C# Linq 詳解四

這篇具有很好參考價值的文章主要介紹了C# Linq 詳解四。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

概述

二十、SelectMany

二十一、Aggregate

二十二、DistinctBy

二十三、Reverse

二十四、SequenceEqual

二十五、Zip

二十六、SkipWhile?

二十七、TakeWhile


C# Linq 文檔(一)
1.Where,2.Select,3.GroupBy,4.First / FirstOrDefault,5.Last / LastOrDefault

C# Linq 文檔(二)
1.OrderBy ,2.OrderByDescending,3.Skip,4.Take,5.Any,6.All

C# Linq 文檔(三)
1.Sum / Min / Max / Average,2.Distinct,3.Concat,4.Join,5.ToList ,6.ToArray,7.ToDictionary

C# Linq 文檔(四)
1.SelectMany,2.Aggregate,3.DistinctBy,4.Reverse,5.SequenceEqual,6.Zip,7.SkipWhile ,8.TakeWhile

C# Linq 文檔(一)_熊思宇的博客-CSDN博客

C# Linq 文檔(二)_熊思宇的博客-CSDN博客

C# Linq 文檔(三)_熊思宇的博客-CSDN博客


概述

語言集成查詢 (LINQ) 是一系列直接將查詢功能集成到 C# 語言的技術統(tǒng)稱。 數(shù)據查詢歷來都表示為簡單的字符串,沒有編譯時類型檢查或 IntelliSense 支持。 此外,需要針對每種類型的數(shù)據源了解不同的查詢語言:SQL 數(shù)據庫、XML 文檔、各種 Web 服務等。 借助 LINQ,查詢成為了最高級的語言構造,就像類、方法和事件一樣。

對于編寫查詢的開發(fā)者來說,LINQ 最明顯的“語言集成”部分就是查詢表達式。 查詢表達式采用聲明性查詢語法編寫而成。 使用查詢語法,可以用最少的代碼對數(shù)據源執(zhí)行篩選、排序和分組操作。 可使用相同的基本查詢表達式模式來查詢和轉換 SQL 數(shù)據庫、ADO .NET 數(shù)據集、XML 文檔和流以及 .NET 集合中的數(shù)據。

二十、SelectMany

SelectMany 用于將嵌套的集合展開成一個扁平的序列

這個解釋有點難以理解,用案例來解釋最好不過了

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<Student> students = new List<Student>
            {
                new Student { Id = 1, Name = "John", Courses = new List<string> { "Math", "English" } },
                new Student { Id = 2, Name = "Jane", Courses = new List<string> { "Science", "History" } },
                new Student { Id = 3, Name = "Mike", Courses = new List<string> { "Art", "Music" } }
            };
            var allCourses = students.SelectMany(s => s.Courses);
            foreach (var course in allCourses)
            {
                Console.WriteLine(course);
            }

            Console.ReadKey();
        }
    }

    class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public List<string> Courses { get; set; }
    }
}

運行:

C# Linq 詳解四,C#,c#

二十一、Aggregate

使用指定的累加器函數(shù)對序列中的元素進行累積計算。

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int[] numbers = { 1, 2, 3, 4, 5 };
            int sum = numbers.Aggregate((acc, num) => acc + num);
            Console.WriteLine("結果:{0}", sum); 

            Console.ReadKey();
        }
    }
}

運行:

C# Linq 詳解四,C#,c#

在?Aggregate((acc, num) => acc + num)?這句可以看到,有兩個參數(shù),是這樣,它是先取兩個參數(shù),1 + 2 = 3,第二次再拿 3 + 3 = 6,如此類推,最終的結果等于 15

二十二、DistinctBy

DistinctBy 是一個自定義的擴展方法,它用于按照指定的屬性或條件對序列中的元素進行去重操作。

去重操作,看的有點蒙,其實就是去除重復的元素,這個方法用法也是花樣很多,可以搜到很多種玩法,只是我基本不用的,哈哈。

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<Person> people = new List<Person>
            {
                new Person { Id = 1, Name = "John" },
                new Person { Id = 2, Name = "Jane" },
                new Person { Id = 3, Name = "John" }
            };

            var distinctPeople = people.DistinctBy(p => p.Name);
            foreach (var person in distinctPeople)
            {
                Console.WriteLine(person.Name);
            }

            Console.ReadKey();
        }
    }

    class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

    public static class EnumerableExtensions
    {
        public static IEnumerable<TSource> DistinctBy<TSource, TKey>(
            this IEnumerable<TSource> source, 
            Func<TSource, TKey> keySelector)
        {
            HashSet<TKey> seenKeys = new HashSet<TKey>();
            foreach (TSource element in source)
            {
                if (seenKeys.Add(keySelector(element)))
                {
                    yield return element;
                }
            }
        }
    }
}

運行:

C# Linq 詳解四,C#,c#

二十三、Reverse

將序列中的元素按照相反的順序返回。

這個非常簡單,直接上案例

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int[] numbers = { 1, 2, 3, 4, 5 };
            var reversedNumbers = numbers.Reverse();
            foreach (var number in reversedNumbers)
            {
                Console.WriteLine(number);
            }

            Console.ReadKey();
        }
    }
}

運行:

C# Linq 詳解四,C#,c#

二十四、SequenceEqual

SequenceEqual 用于比較兩個序列是否相等。

這個方法,兩個數(shù)組必須一模一樣才會返回 true,而且類型也必須一樣

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int[] numbers1 = { 1, 2, 3, 4, 5 };
            int[] numbers2 = { 1, 2, 3, 4, 5 };
            bool areEqual = numbers1.SequenceEqual(numbers2);
            Console.WriteLine(areEqual); 

            Console.ReadKey();
        }
    }
}

運行:

C# Linq 詳解四,C#,c#

二十五、Zip

zip 用于將兩個序列按照索引位置進行配對。

下面這個案例中,把兩個數(shù)組一對一進行相加,并根據原來的下標,重新生成了一個新的數(shù)組

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int[] numbers1 = { 1, 2, 3 };
            int[] numbers2 = { 10, 20, 30 };
            var zippedNumbers = numbers1.Zip(numbers2, (n1, n2) => n1 + n2);
            foreach (var number in zippedNumbers)
            {
                Console.WriteLine(number);
            }

            Console.ReadKey();
        }
    }
}

運行:

C# Linq 詳解四,C#,c#

二十六、SkipWhile?

SkipWhile 用于跳過序列中滿足指定條件的元素,直到遇到第一個不滿足條件的元素。

注意這里,是不滿足條件,下面的案例中,n 指的就是數(shù)組中的每個元素,在遍歷到 n 不滿足? n < 3 這個條件時,才開始返回集合。

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int[] numbers = { 1, 2, 3, 4, 5 };
            var skippedNumbers = numbers.SkipWhile(n => n < 3);
            foreach (var number in skippedNumbers)
            {
                Console.WriteLine(number);
            }

            Console.ReadKey();
        }
    }
}

運行:

C# Linq 詳解四,C#,c#

二十七、TakeWhile

TakeWhile 用于獲取序列中滿足指定條件的連續(xù)元素,直到遇到第一個不滿足條件的元素。

TakeWhile 和?SkipWhile 剛好相反,用起來也是比較簡單的。

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int[] numbers = { 1, 2, 3, 4, 5 };
            var takenNumbers = numbers.TakeWhile(n => n < 4);
            foreach (var number in takenNumbers)
            {
                Console.WriteLine(number);
            }

            Console.ReadKey();
        }
    }
}

運行:

C# Linq 詳解四,C#,c#

end文章來源地址http://www.zghlxwxcb.cn/news/detail-564383.html

到了這里,關于C# Linq 詳解四的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • C# Linq 學會使用,學會自己編寫Linq

    C# Linq 學會使用,學會自己編寫Linq

    Linq我暫時理解為,一種內置的非常方便的數(shù)據查詢的工具 我們先學習它的使用 //數(shù)據類 //新建了一個List數(shù)據,用來測試數(shù)據查詢? //現(xiàn)在定義一個需求,需要查出 id2 的數(shù)據 引用Linq的命名空間 ?引用命名空間之后,我們的list對象,擁有了一個擴展方法,Where (擴展方法,在之前的博客

    2024年02月06日
    瀏覽(28)
  • C#中的LINQ

    一:什么是LINQ LINQ代表語言集成查詢,是.net框架的擴展,它允許我們用SQL查詢數(shù)據庫的方式來查詢數(shù)據的集合 二:LINQ延遲查詢的特性 延遲查詢是指查詢操作并不是在定義的時候執(zhí)行,而是在遍歷集合中的數(shù)據時才執(zhí)行 因為作為yield迭代器的主體,只有使用foreach遍歷執(zhí)行到

    2023年04月09日
    瀏覽(21)
  • C# LINQ,SQL

    C#中的LINQ和SQL都是用于查詢數(shù)據的工具,但它們有以下異同點: 異同點: 1. LINQ和SQL都可以用于查詢數(shù)據,但LINQ是在C#中使用的語言集成查詢,而SQL是一種獨立的查詢語言。 2. LINQ和SQL都支持基本的查詢操作,如選擇、過濾、排序和分組。 3. LINQ和SQL都支持連接多個表,但LI

    2024年02月10日
    瀏覽(18)
  • C# Lambda,LINQ

    Lambda表達式和LINQ語句都是C#中用于查詢和篩選數(shù)據的工具,但它們有一些異同點。 異同點: 1. 語法不同: Lambda表達式是一種匿名函數(shù) ,它可以用于創(chuàng)建委托或表達式樹。而LINQ語句是一種查詢語句,它使用特定的和語法來查詢數(shù)據。 2. 功能不同: Lambda表達式可以用于

    2024年02月09日
    瀏覽(26)
  • C#高級編程 Linq介紹

    本文對C#高級編程部分的Linq查詢進行介紹 目錄 一、Linq起源 二 LINQ 操作組成 2.1數(shù)據源 2.2查詢 3.3查詢執(zhí)行

    2024年02月11日
    瀏覽(28)
  • 【C# 基礎精講】LINQ 基礎

    【C# 基礎精講】LINQ 基礎

    LINQ(Language Integrated Query)是一項強大的C#語言特性,它使數(shù)據查詢和操作變得更加簡潔、靈活和可讀性強。通過使用LINQ,您可以使用類似SQL的語法來查詢各種數(shù)據源,如集合、數(shù)組、數(shù)據庫等。本文將介紹LINQ的基礎概念、常見的LINQ操作和示例,以及如何在C#中利用LINQ進行數(shù)

    2024年02月12日
    瀏覽(22)
  • C#版本LINQ增強開源庫

    C#版本LINQ增強開源庫

    LINQ對應的中文名稱是:語言集成查詢,是對一系列直接將查詢功能集成到C#語言技術的統(tǒng)稱,我們最常用的場景是,用于數(shù)據庫的查詢功能。 在.Net中,本身對Objects也支持LINQ的擴展,但是對于一些特定的功能,就需要我們自己去擴展。 所以,今天給大家推薦一個LINQ擴展庫,

    2023年04月13日
    瀏覽(21)
  • C#基礎--Lambda和LINQ

    C#基礎--Lambda和LINQ

    在.NetFramewok的不同版本都有不同的樣子;在.NetCore下也都是支持的; 1.1 .Netframework1.0/1.1時代 1.2 .NetFramework2.0 匿名方法 增加了一個delegate, 可以訪問到除了參數(shù)以外的局部變量 1.3 .NetFramework3.0 前期 去掉了delegate,添加了一個= goes to 1.4 .NetFramework3.0 后期 去掉了匿名

    2024年02月17日
    瀏覽(20)
  • C#中LINQ的使用知多少?LINQ常功能整理,實例源代碼解析

    C#中LINQ的使用知多少?LINQ常功能整理,實例源代碼解析

    ? LINQ(Language-Integrated Query)是C#語言中的一個強大的查詢技術,它提供了一種統(tǒng)一的查詢語法,可以用于查詢和操作各種數(shù)據源,包括集合、數(shù)據庫、XML等。下面詳細描述了LINQ的20個功能點,并提供了相應的源代碼。 查詢集合中的所有元素: 使用條件過濾集合中的元素:

    2024年02月05日
    瀏覽(24)
  • C#基礎:利用LINQ進行復雜排序

    請你寫出linq對表格排序, CODE=3排前面 ,其余按照 CODE降序 排序,CODE一樣再按照 字母升序 排序 ID CODE VALUE A0001 1 A A0002 1 B A0003 1 C A0004 2 D A0005 2 E A0006 2 F A0007 3 G A0008 3 H A0009 3 I A0010 4 J 若再加大難度,ID=A0005的排第一,然后CODE=3排前面,其余按照CODE降序排序,再按照字母升序排

    2024年01月18日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包