用Join子句进行分组联接

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 用Join子句进行分组联接
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] intAry1 = { 5, 15, 25, 30, 33, 40 };
            int[] intAry2 = { 10, 20, 30, 50, 60, 70, 80 };
            var query1 =
                from val1 in intAry1 //在数组intAry1中取到val1
                join val2 in intAry2 //同时在数组intAry2中取到val2
                on val1%5 equals val2%15 into val2Grp
                //val2Grp中的数据是val1和val2的两个对象,而不是记录
                where val2Grp.Count()!=0
                //new { VAL1 = val1, VAL2GRP = val2Grp产生一个新类型
                select (new { VAL1 = val1, VAL2GRP = val2Grp });
            //遍历新的数据类型
            foreach(var item in query1)
            {
             foreach(int item1 in item.VAL2GRP)
             {
                 Console.WriteLine(item.VAL1+" "+item1.ToString());
             }
         }
            System.Console.ReadKey();
        }
    }
}
时间: 2024-11-23 21:27:47

用Join子句进行分组联接的相关文章

使用GROUP BY子句进行分组操作

本文通过实例介绍GROUP BY子句的使用方法. 1 准备测试数据 新建数据表tb_Student并插入下图所示的测试数据. 图1 数据表tb_Student的数据 2 使用GROUP BY子句进行分组 问题1  要求 按照班级ID对学生进行分组,并查询出每个班级的学生数,学生的最大年龄,最小年龄,年龄总和及年龄平均等信息. 解答 SELECT s.class_id AS 班级,COUNT(*) AS 人数,MAX(s.student_age) AS 年龄最大,MIN(s.student_age

[读书笔记]C#学习笔记六: C#3.0Lambda表达式及Linq解析

前言 最早使用到Lambda表达式是因为一个需求:如果一个数组是:int[] s = new int[]{1,3,5,9,14,16,22};例如只想要这个数组中小于15的元素然后重新组装成一个数组或者直接让s返回一个新数组该怎么截取? 最开始的想法就是将这个s遍历一遍然后判断下再来重新组装成新的数组.好麻烦是不是? 于是便百度到了一个叫做Lambda的东西, 所以用了之后效果如下: 1 class Program 2 { 3 static void Main(string[] args) 4

C#学习笔记五: C#3.0Lambda表达式及Linq解析

最早使用到Lambda表达式是因为一个需求:如果一个数组是:int[] s = new int[]{1,3,5,9,14,16,22};例如只想要这个数组中小于15的元素然后重新组装成一个数组或者直接让s返回一个新数组该怎么截取? 最开始的想法就是将这个s遍历一遍然后判断下再来重新组装成新的数组.好麻烦是不是? 于是便百度到了一个叫做Lambda的东西, 所以用了之后效果如下: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5

LINQ查询基本操作

1.如何使用LINQ LINQ作为一种数据查询编码方式,本身并不是独立的开发语句,也不能进行应用程序开发.在.NET3.5中,可以在C#中集成LINQ查询代码.在任何源代码文件中,要使用LINQ查询功能,必须引用System.Linq命名空间.使用LINQ to XML要引用System.Xml.Linq命名空间,使用LINQ to ADO.NET要引用System.Data.Linq命名空间. 2.LINQ查询表达式 查询表达式关键字: from:指定要查找的数据源以及范围变量,多个from子

Lambda表达式和查询表达式(1)基本概念

Lambda表达式也是一种匿名函数(anonymous function),比匿名方法具有更加简洁的表示形式.它可以包含表达式和语句,并且适用于创建委托和事件. 查询表达式: 是一种使用查询语法表示的表达式,它可以从一个或多个给定的数据源中检索数据,并制定检索结果的表现形式. Lambda表达式:  由输入参数.Lambda运算符和表达式(或语句块)构成. 它的语法形式如下: (input parameters) => empression; : input parameters : 表示输入参

[LINQ]查询关键字

摘自https://msdn.microsoft.com/zh-cn/library/bb310804.aspx,方便以后翻阅. from子句 查询表达式必须以 from 子句开头.另外,查询表达式还可以包含子查询,子查询也是以 from 子句开头. from 子句指定以下内容: 将对其运行查询或子查询的数据源. 一个本地范围变量,表示源序列中的每个元素. 范围变量和数据源都是强类型. from 子句中引用的数据源的类型必须为 IEnumerable.IEnumerable<T> 或一种派生类

Linq、Lambda表达式详细总结(转)

(一)输入参数 在Lambda表达式中,输入参数是Lambda运算符的 左边部分.它包含参数的数量可以为0.1或者多个.只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略.输入参数的数量大于或者等于2 时,Lambda表达式左边的一对小括弧中的多个参数质检使用逗号(,)分割. 示例1 下面创建一个Lambda表达式,它的输入参数的数量为0.该表达式将显示“This is a Lambda expression”字符串. [csharp] view plaincopy ()=>Co

Lambda表达式详细总结

(一)输入参数 在Lambda表达式中,输入参数是Lambda运算符的左边部分.它包含参数的数量可以为0.1或者多个.只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略.输入参数的数量大于或者等于2时,Lambda表达式左边的一对小括弧中的多个参数质检使用逗号(,)分割. 示例1 下面创建一个Lambda表达式,它的输入参数的数量为0.该表达式将显示"This is a Lambda expression"字符串. ()=>Console.WriteLine(&q

C# Lambda表达式详细总结

(一)输入参数 在Lambda表达式中,输入参数是Lambda运算符的左边部分.它包含参数的数量可以为0.1或者多个.只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略.输入参数的数量大于或者等于2时,Lambda表达式左边的一对小括弧中的多个参数质检使用逗号(,)分割. 示例1 下面创建一个Lambda表达式,它的输入参数的数量为0.该表达式将显示"This is a Lambda expression"字符串. [csharp] view plain copy ()