C# LINQ使用,运算符

来源:互联网 发布:mac virtualbox装win7 编辑:程序博客网 时间:2024/06/08 18:07

直接上例子:

  static void Main(string[] args)        {            //定义匿名类的数组对象            var peo = new[]            {            new {Name = "ppp1",LastName= "a",ID="2011"},            new {Name = "ppp2",LastName= "a",ID="2002"},            new {Name = "ppp3",LastName= "b",ID="1903"},            new {Name = "ppp4",LastName= "c",ID="2004"}            };            IEnumerable<string> customerFirstNames = from custs in peo select custs.Name+custs.LastName;            foreach (string s in customerFirstNames)            {                Console.WriteLine(s);            }            //通过定义匿名类            var t = from custs in peo select new {Name=custs.Name ,LastName = custs.LastName };            foreach (var s in t)            {                Console.WriteLine(s);            }            //判断字符相等,最好不要用==,用Equals最好            var t2 = from custs in peo where string.Equals(custs.ID,"2011") select custs.Name + custs.LastName;            foreach (var s in t2)            {                Console.WriteLine(s);            }            Console.WriteLine("排序");            //排序             var t3 = from custs in peo orderby custs.ID select custs.Name + custs.LastName;            foreach (var s in t3)            {                Console.WriteLine(s);            }            //分组            var t4 = from custs in peo group custs by custs.LastName;            foreach (var s in t4)            {                Console.WriteLine(s.Key);                foreach (var ss in s)                {                    Console.WriteLine(ss.Name +" "+ss.LastName);                }            }        }

联合查询

static void Main(string[] args)        {            //定义匿名类的数组对象            var peo = new[]            {            new {Name = "ppp1",LastName= "a",ID="2011"},            new {Name = "ppp2",LastName= "a",ID="2002"},            new {Name = "ppp3",LastName= "b",ID="1903"},            new {Name = "ppp4",LastName= "c",ID="2004"}            };            var student = new[]            {                new{ID = "2011",cl="aaa"},                new{ID = "2002",cl = "bbb"}            };            //联合查询            var customerFirstNames = from custs in peo                                                     join adr in student                                                      on custs.ID equals adr.ID                                                     select new { custs.Name, custs.LastName, adr.ID, adr.cl };            foreach (var s in customerFirstNames)            {                Console.WriteLine(s);            }        }

如果被查询的对象的内容有所更改,那么,LINQ查询结果也会随着变,但是不是立即改变,而是在LINQ执行扩展方法或者查询运算符时进行更改。

如果不想更改,可像下面那样加上.ToList<>()。<>里面 加上数据的类型

 from custs in peo.ToList<>() select custs.Name+custs.LastName;

原创粉丝点击