C# LINQ语法

from子句嵌套

private void button5_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();

            List<Student1> students = new List<Student1>
            {
                new Student1{Name = "张三",Scores = new List<int>{93,74,94,58}},
                new Student1{Name = "李四",Scores = new List<int>{94,74,86,58}},
                new Student1{Name = "王五",Scores = new List<int>{95,74,86,58}},
                new Student1{Name = "赵六",Scores = new List<int>{96,74,86,58}},
                new Student1{Name = "冯七",Scores = new List<int>{97,74,86,58}}
            };

            var scoreQuery =
                from student in students
                from scores in student.Scores
                where scores > 90
                select new { name = student.Name, scores };
            foreach (var stu in scoreQuery)
            {
                listBox1.Items.Add(string.Format("{0}超过90分的成绩有{1}",stu.name,stu.scores));
            }
        }

Form子句交叉连接查询

private void button6_Click(object sender, EventArgs e)
        {
            char[] upperCase = { 'A', 'B', 'C' };
            char[] lowerCase = { 'x', 'y', 'z' };

            var joinQuery1 =
                from upper in upperCase
                from lower in lowerCase
                select new { upper, lower };

            var joinQuery2 =
                from lower in lowerCase
                where lower != 'x'
                from upper in upperCase
                select new { upper, lower };

            foreach (var pair in joinQuery1)
            {
                listBox1.Items.Add(string.Format("{0}匹配{1}",pair.upper,pair.lower));
            }

            listBox1.Items.Add("----我是无聊的分界线----");

            foreach (var pair in joinQuery2)
            {
                listBox1.Items.Add(string.Format("{0}匹配{1}", pair.lower, pair.upper));
            }
        }

select语句投影

使用select子句将数据源转换为新类型的序列

group分组

group *** by ****;

into 关键字

group关键字的同时配合使用into关键字。

let子句

let子句可以将表达式(如方法调用)的结果存储到新的范围变量中

var xxx =
                from x in xxx
                let sum_x = x.Scores[0] + x.Scores[1] + x.Scores[2]
                where sum_x/3 > 80
                select string.Format("平均值大于80的有{0},平均分为{1}",x.name,sum_x/4);

转载于:https://www.cnblogs.com/Mysterious/p/3427667.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值