开发手册 欢迎您!
软件开发者资料库

.NET(C#) Linq Skip和SkipWhile的使用

Linq是Language Integrated Query的简称,它是微软在.NET Framework 3.5里面新加入的特性,用以简化查询查询操作。本文主要介绍.NET(C#) 中Linq的Skip和SkipWhile操作符。

1、Skip操作符

Skip操作符用于从输入序列中跳过指定数量的元素,返回由序列中剩余的元素所组成的新序列。

例如,

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 pList = new List();            People p1 = new People(1, "C", 4);            People p2 = new People(1, "Java", 7);            People p3 = new People(1, "Python", 11);            People p4 = new People(1, "Linux", 15);            pList.Add(p1);            pList.Add(p2);            pList.Add(p3);            pList.Add(p4);            IEnumerable newList = pList.Skip(2);    //跳过前两个            foreach (var item in newList)            {                Console.WriteLine(item.Name);                          }            Console.ReadKey();        }    }    public class People    {        public People(int id, string name, int age)        {            this.Id = id;            this.Name = name;            this.Age = age;        }        public int Id        {            get;            set;        }        public string Name        {            get;            set;        }        public int Age        {            get;            set;        }    }}

2、SkipWhile操作符

SkipWhile操作符用于从输入序列中跳过满足一定条件指定数量的元素,与TakeWhile操作符类似。如果条件满足就一直跳过,直到不满足后 就取剩下的所有元素(后面的不会再判断)。

例如,

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 pList = new List();            People p1 = new People(1, "C", 6);            People p2 = new People(1, "C#", 11);            People p3 = new People(1, "Java", 8);            People p4 = new People(1, "Python", 15);            pList.Add(p1);            pList.Add(p2);            pList.Add(p3);            pList.Add(p4);            IEnumerable newList =  pList.SkipWhile(p => p.Age < 11);               foreach (var item in newList)              {                Console.WriteLine(item.Name);             }            Console.WriteLine();            IEnumerable newList1 =  pList.SkipWhile((p, i) => p.Age<12 && i < 2);            foreach (People p in newList1)            {                Console.WriteLine(p.Name);             }            Console.ReadKey();        }    }    public class People    {        public People(int id, string name, int age)        {            this.Id = id;            this.Name = name;            this.Age = age;        }        public int Id        {            get;            set;        }        public string Name        {            get;            set;        }        public int Age        {            get;            set;        }    }}