C# LINQ使用,运算符

直接上例子:

  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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值