LINQ-Where子句与select子句

1.Where子句

  where子句的作用就是筛选元素,除了开始喝结束位置,where子句几乎可以出现在LINQ表达式的任意位置。一个LINQ表达式中可以有Where子句,也可以没有;可以有一个,可以有多个;多个where子句之间的关系相当于逻辑“与”,每个where子句可以包含1个或多个逻辑表达式,这些条件成为“谓词”,多个谓词之间用布尔运算符隔开,比如逻辑“与”用&&,逻辑“或”用||,而不是SQL中的and或or

namespace LINQ
{
    class Custom
    {
        public string name
        {
            get;
            set;
        }
        public int Age
        {
            get;
            set;
        }
        public List<string> Table
        {
            get;
            set;
        }
    }
}
  class Program
    {
        static void Main(string[] args)
        {
            List<Custom> my = new List<Custom>()
            {
                new Custom() {  name="杜伟",Age=23,Table=new List<string> { "13166856811","17644045820"} },
                new Custom() {  name="王玥",Age=30,Table=new List<string>(){"13526485597","145326689751" } }
            };

            var b = from a in my
                    //筛选字符串长度为2 与名字开头有杜的
                  where(a.name.Length==2&&a.name.Substring(0,1)=="")
                     select a;

            foreach (var item in b)
            {
                Console.WriteLine("姓名{0},年龄{1}",item.name,item.Age);
                foreach (var item1 in item.Table)
                {
                    Console.WriteLine("          电话{0}",item1);
                }
            }

            Console.ReadKey();
        }

2.select子句

  例子:最简单select就是直接输出from子句建立的那个范围变来那个;

  

 static void Main(string[] args)
        {
            int[] a = {0,1,2,3,4,5,6,7 ,8,9};
            var qury = from c in a
                       select c;

            foreach (var item in qury)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();

        }

例2:对查询结果进行投影(转换)。下面查询表达式查询arr数组中的每一个元素,查询结果转换为一个集合对象的两个属性值:ID和Name,它在select子句中由匿名对象初始化器创建。每一个对象的ID属性的值是当前元素的值、Name属性的值为元素的值的字符串的表现形式。

   

 static void Main(string[] args)
        {
            int[] a = {0,1,2,3,4,5,6,7 ,8,9};
            var qury = from c in a
                       //使用匿名初始化器创建集合,select可以理解成要显示的格式
                       select new {id=c,name=c.ToString() };

            foreach (var item in qury)
            {
                Console.WriteLine(item.id+""+item.name);
            }
            Console.ReadKey();

        }

 

posted @ 2018-08-08 13:39  WhiteSpace  阅读(3911)  评论(0编辑  收藏  举报