LinQ技术

   /// <summary>
    /// LINQ,重点是感悟from子句中的查询变量的灵活
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            //1单个form子句
            string[] values = { "LINQ学习","LINQ基本语句","from子句","单个from子句"};
            var value = from v in values
                        where v.IndexOf("LINQ") > -1
                        select new { v, v.Length };
            foreach (var n in value)
            {
                Console.WriteLine("{0},{1}",n.v,n.Length );
            }
            Console.ReadKey(false);
            //2使用LINQ查询ArrayList
            ArrayList gList = new ArrayList();
            gList.Add(new GustInfo {  Name="DebugLZQ", Age=26, Tel="88888888"});
            gList.Add(new GustInfo { Name="博客园",Age=6, Tel ="666666"});
            gList.Add(new GustInfo { Name = "M&MSoft", Age =9, Tel = "55555" });

            var query = from GustInfo gust in gList
                        where gust.Age > 9
                        select gust;//范围变量gust制定了数据类型
            foreach (GustInfo g in query)
            {
                Console.WriteLine("{0} 年龄:{1} 电话:{2}",g.Name,g.Age,g.Tel );
            }
            Console.ReadKey(false);
            //3复合from子句
            List<GustInfo2> gList2 = new List<GustInfo2>() 
            {
                new GustInfo2{ Name="DebugLZQ",Age=26,TelTable=new List<string>(){"8888888","138******"}},
                new GustInfo2{ Name="博客园",Age=6,TelTable =new List<string>(){"666666","138******"}},
                new GustInfo2{ Name="M&MSoft",Age=9,TelTable=new List<string>(){"55555","138******"}}
            };

            //gust、tel都是查询变量,作用域为当前查询语句!!!
            var query2 = from gust in gList2
                         from tel in gust.TelTable 
                         where tel.IndexOf("5555") > -1
                         select gust;
            foreach (var g in query2)
            {
                Console.WriteLine("{0} 年龄{1}",g.Name,g.Age );
                foreach (var t in g.TelTable)
                {
                    Console.WriteLine("电话:{0}",t);
                }
            }

            Console.ReadKey(false);

            //4多个from子句
            var query3 = from GustInfo gust in gList
                         where gust.Age > 6
                         from GustInfo2 gust2 in gList2
                         where gust2.Age> 9
                         select new { gust, gust2 };//查询结果定制
            foreach (var g in query3)
            {
                Console.WriteLine("{0}  {1}", g.gust.Name, g.gust2.Name);
            }

            Console.ReadKey(false);
        }
    }
posted @ 2016-01-03 20:17  我的24岁青春  阅读(237)  评论(0编辑  收藏  举报