C#中Linq AsEnumeralbe、DefaultEmpty和Empty的使用

编程入门 行业动态 更新时间:2024-10-21 05:49:11

C#中<a href=https://www.elefans.com/category/jswz/34/1768616.html style=Linq AsEnumeralbe、DefaultEmpty和Empty的使用"/>

C#中Linq AsEnumeralbe、DefaultEmpty和Empty的使用

Linq是Language Integrated Query的简称,它是微软在.NET Framework 3.5里面新加入的特性,用以简化查询查询操作。以下主要介绍C#中Linq的AsEnumeralbe、DefaultEmpty和Empty操作符。

1、AsEnumeralbe操作符

AsEnumerable操作符可以将一个类型为IEnumerable<T>的输入序列转换成一个IEnumerable<T>的输出序列,其主要用于将一个实现了IEnumerable<T>接口的对象转换成一个标准的IEnumerable<T>接口对象。在Linq中、不同领域的Linq实现都有自己专属的操作符。

IQueryable<T>通常是Linq to SQL的返回类型,当我们直接在上面调用Where<T>方法时,调用的是Linq to sql的扩展方法,因此有时候我们需要转换为标准的IEnumerable<T>才能调用Linq to OBJECT的扩展方法。

2、DefaultEmpty操作符

DefaultEmpty操作符可以用来为一个空的输入序列生成一个对应的含有默认元素的新序列。引用类型为null,值类型为相应的默认值。有些标准操作符在一个空的序列上调用时会抛出一个异常,而DefaultEmpty恰恰可以解决这个问题。

例如,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{class Program{static void Main(string[] args){List<string> ListInt = new List<string>();ListInt.Add("C");ListInt.Add("Java");ListInt.Add("Python");string str = ListInt.Where(s => s.StartsWith("JavaScript")).DefaultIfEmpty().First();Console.WriteLine("str="+str);     //输出空白//使用string str1 = ListInt.Where(s => s.StartsWith("JavaScript")).First();  如去掉DefaultEmpty就会报异常               Console.ReadKey();}}
}

3、Empty操作符

Empty操作符用于生成一个包含指定类型元素的空序列。

例如,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{class Program{static void Main(string[] args){IEnumerable<int> ints = Enumerable.Empty<int>();Console.WriteLine(ints.Count());    //输出0            Console.ReadKey();}}
}

更多推荐

C#中Linq AsEnumeralbe、DefaultEmpty和Empty的使用

本文发布于:2023-11-15 00:31:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1590510.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:AsEnumeralbe   Linq   Empty   DefaultEmpty

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!