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

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

1、AsEnumeralbe操作符

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

IQueryable通常是Linq to SQL的返回类型,当我们直接在上面调用Where方法时,调用的是Linq to sql的扩展方法,因此有时候我们需要转换为标准的IEnumerable才能调用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 ListInt = new List();
            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 ints = Enumerable.Empty();
            Console.WriteLine(ints.Count());    //输出0            
            Console.ReadKey();
        }
    }
}

你可能感兴趣的:(C#遗忘系列,c#,linq,开发语言)