LINQ查询 *** 作符之Distinct、Union、Concat、Intersect、Except、Skip、Take、SkipWhile、TakeWhi

LINQ查询 *** 作符之Distinct、Union、Concat、Intersect、Except、Skip、Take、SkipWhile、TakeWhi,第1张

概述介绍     ·Distinct - 过滤集合中的相同项;延迟     ·Union - 连接不同集合,自动过滤相同项;延迟     ·Concat - 连接不同集合,不会自动过滤相同项;延迟     ·Intersect - 获取不同集合的相同项(交集);延迟     ·Except - 从某集合中删除其与另一个集合中相同的项;延迟     ·Skip - 跳过集合的前n个元素;延迟     · 介绍
    ·distinct - 过滤集合中的相同项;延迟
    ·Union - 连接不同集合,自动过滤相同项;延迟
    ·Concat - 连接不同集合,不会自动过滤相同项;延迟
    ·Intersect - 获取不同集合的相同项(交集);延迟
    ·Except - 从某集合中删除其与另一个集合中相同的项;延迟
    ·Skip - 跳过集合的前n个元素;延迟
    ·Take - 获取集合的前n个元素;延迟
    ·Skipwhile - 直到某一条件成立就停止跳过;延迟
    ·TakeWhile - 直到某一条件成立就停止获取;延迟
    ·Single - 根据表达式返回集合中的某一元素;不延迟
    ·SingleOrDefault - 根据表达式返回集合中的某一元素(如果没有则返回默认值);不延迟
    ·Reverse - 对集合反向排序;延迟
    ·SelectMany - Select选择(一对多);延迟


示例
Summary2.aspx.cs
using System;using System.Data;using System.Configuration;using System.Collections;using System.linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HTMLControls;using System.Xml.linq;using System.Collections.Generic;using DAL;public partial class liNQ_Summary2 : System.Web.UI.Page{    northwindDataContext _ctx = new northwindDataContext();    string[] _ary = null;    protected voID Page_Load(object sender,EventArgs e)    {        _ary = new string[] { "asp.net","csharp","xhtml","CSS","JavaScript","wcf","wpf","asp.net","silverlight","linq","wf","sqlserver","asp.net AJAX","ssis","ssas","ssrs" };        // distinct - 过滤集合中的相同项;延迟        Summary_distinct();        // Union - 连接不同集合,自动过滤相同项;延迟        Summary_Union();        // Concat - 连接不同集合,不会自动过滤相同项;延迟        Summary_Concat();        // Intersect - 获取不同集合的相同项(交集);延迟        Summary_Intersect();        // Except - 从某集合中删除其与另一个集合中相同的项;延迟        Summary_Except();        // Skip - 跳过集合的前n个元素;延迟        // Take - 获取集合的前n个元素;延迟        Summary_Skip_Take();        // Skipwhile - 直到某一条件成立就停止跳过;延迟        // TakeWhile - 直到某一条件成立就停止获取;延迟        Summary_Skipwhile_TakeWhile();        // Single - 根据表达式返回集合中的某一元素;不延迟        // SingleOrDefault - 根据表达式返回集合中的某一元素(如果没有则返回默认值);不延迟        Summary_Single_SingleOrDefault();        // Reverse - 对集合反向排序;延迟        Summary_Reverse();        // SelectMany - Select选择(一对多);延迟        Summary_SelectMany();    }}

distinct - 过滤集合中的相同项;延迟
/// <summary>    /// distinct - 过滤集合中的相同项;延迟    /// </summary>    voID Summary_distinct()    {        var ary = (from a in _ary                   select a).distinct();        foreach (string s in ary)        {            result.INNERHTML += s + "<br />";        }        result.INNERHTML += "<br />";    }

运行结果
asp.net
csharp
xhtml
CSS
JavaScript
wcf
wpf
silverlight
linq
wf
sqlserver
asp.net AJAX
ssis
ssas
ssrs


Union - 连接不同集合,自动过滤相同项;延迟
/**//// <summary>    /// Union - 连接不同集合,自动过滤相同项;延迟    /// </summary>    voID Summary_Union()    {        var ary = (from a in _ary                   select a).Take(3).Union((from a in _ary                                            select a).Take(6));        foreach (string s in ary)        {            result.INNERHTML += s + "<br />";        }        result.INNERHTML += "<br />";    }

运行结果
asp.net
csharp
xhtml
CSS
JavaScript
wcf


Concat - 连接不同集合,不会自动过滤相同项;延迟
 /**//// <summary>    /// Concat - 连接不同集合,不会自动过滤相同项;延迟    /// </summary>    voID Summary_Concat()    {        var ary = (from a in _ary                   select a).Take(3).Concat((from a in _ary                                             select a).Take(6));        foreach (string s in ary)        {            result.INNERHTML += s + "<br />";        }        result.INNERHTML += "<br />";    }

运行结果
asp.net
csharp
xhtml
asp.net
csharp
xhtml
CSS
JavaScript
wcf

Intersect - 获取不同集合的相同项(交集);延迟
    /**//// <summary>    /// Intersect - 获取不同集合的相同项(交集);延迟    /// </summary>    voID Summary_Intersect()    {        var ary = (from a in _ary                   select a).Take(3).Intersect((from a in _ary                                                select a).Skip(1).Take(3));        foreach (string s in ary)        {            result.INNERHTML += s + "<br />";        }        result.INNERHTML += "<br />";    }

运行结果
csharp
xhtml

Except - 从某集合中删除其与另一个集合中相同的项;延迟
    /**//// <summary>    /// Except - 从某集合中删除其与另一个集合中相同的项;延迟    /// </summary>    voID Summary_Except()    {        var ary = (from a in _ary                   select a).Take(3).Except((from a in _ary                                             select a).Skip(1).Take(3));        foreach (string s in ary)        {            result.INNERHTML += s + "<br />";        }        result.INNERHTML += "<br />";    }

运行结果
asp.net

Skip - 跳过集合的前n个元素;延迟
Take - 获取集合的前n个元素;延迟
    /**//// <summary>    /// Skip - 跳过集合的前n个元素;延迟    /// Take - 获取集合的前n个元素;延迟    /// </summary>    voID Summary_Skip_Take()    {        var ary = (from a in _ary                   select a).Skip(2).Take(3);        foreach (string s in ary)        {            result.INNERHTML += s + "<br />";        }        result.INNERHTML += "<br />";    }

运行结果
xhtml
CSS
JavaScript


Skipwhile - 直到某一条件成立就停止跳过;延迟
TakeWhile - 直到某一条件成立就停止获取;延迟
    /**//// <summary>    /// Skipwhile - 直到某一条件成立就停止跳过;延迟    /// TakeWhile - 直到某一条件成立就停止获取;延迟    /// </summary>    voID Summary_Skipwhile_TakeWhile()    {        var ary = (from a in _ary                   select a).Skipwhile(s => s.Length < 8).TakeWhile(s => s.Length > 2);        foreach (string s in ary)        {            result.INNERHTML += s + "<br />";        }        result.INNERHTML += "<br />";    }

运行结果
JavaScript
wcf
wpf
asp.net
csharp
xhtml
CSS
JavaScript
silverlight
linq


Single - 根据表达式返回集合中的某一元素;不延迟
SingleOrDefault - 根据表达式返回集合中的某一元素(如果没有则返回默认值);不延迟
    /**//// <summary>    /// Single - 根据表达式返回集合中的某一元素;不延迟    /// SingleOrDefault - 根据表达式返回集合中的某一元素(如果没有则返回默认值);不延迟    /// </summary>    voID Summary_Single_SingleOrDefault()    {        string s = (from a in _ary                    select a).Single(a => a == "silverlight");        // string s = (from a in _ary        //             select a).SingleOrDefault(a => a == "xxx");        // s == null        result.INNERHTML += s + "<br />";        result.INNERHTML += "<br />";    }

运行结果
silverlight

Reverse - 对集合反向排序;延迟
    /**//// <summary>    /// Reverse - 对集合反向排序;延迟    /// </summary>    voID Summary_Reverse()    {        var ary = (from a in _ary                   orderby a.Length ascending                   select a).Reverse();        foreach (string s in ary)        {            result.INNERHTML += s + "<br />";        }        result.INNERHTML += "<br />";    }

运行结果
asp.net AJAX
silverlight
JavaScript
JavaScript
sqlserver
asp.net
asp.net
csharp
csharp
xhtml
xhtml
ssrs
ssas
ssis
linq
CSS
wpf
wcf
CSS
wf


SelectMany - Select选择(一对多);延迟
    /**//// <summary>    /// SelectMany - Select选择(一对多);延迟    /// </summary>    voID Summary_SelectMany()    {        var ary = (from a in _ary                   where a.Contains(".")                   select a).SelectMany(a => a.Split('.'));        foreach (string s in ary)        {            result.INNERHTML += s + "<br />";        }        result.INNERHTML += "<br />";    }

运行结果
asp net asp net asp net AJAX 总结

以上是内存溢出为你收集整理的LINQ查询 *** 作符之Distinct、Union、Concat、Intersect、Except、Skip、Take、SkipWhile、TakeWhi全部内容,希望文章能够帮你解决LINQ查询 *** 作符之Distinct、Union、Concat、Intersect、Except、Skip、Take、SkipWhile、TakeWhi所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1073785.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存