silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了VS 2008 + .NET 3.5 - LINQ查询操作符(二)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

  VS 2008 + .NET 3.5 - LINQ查询操作符(二) VS 2008 + .NET 3.5 - LINQ查询操作符之DisTinct、Union、Concat、Intersect、Except、Skip、Take、SkipWhile、TakeWhile、Single、SingLeorDefault、Reverse、SELEctMany 介绍     ·DisTinct - 过滤集

 

@H_524_489@
VS 2008 + .NET 3.5 - LINQ查询操作符(二)

VS 2008 + .NET 3.5 - LINQ查询操作符之DisTinct、Union、Concat、Intersect、Except、Skip、Take、SkipWhile、TakeWhile、Single、SingLeorDefault、Reverse、SELEctMany


介绍
    ·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 />";
    }

运行结果aspnetaspnetaspnet ajax 

大佬总结

以上是大佬教程为你收集整理的VS 2008 + .NET 3.5 - LINQ查询操作符(二)全部内容,希望文章能够帮你解决VS 2008 + .NET 3.5 - LINQ查询操作符(二)所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。