使用 Linq 对多个对象进行join操作 C#

     class A {
            public int id { get; set; }
            public string name { get; set; }
        }
        class B {
            public int id { get; set; }
            public int age { get; set; }
        }
        class C {
            public int id { get; set; }
            public string address { get; set; }
        }

        private void button8_Click(object sender, EventArgs e)
        {
            List<A> ListA = new List<A>();
            List<B> ListB = new List<B>();
            List<C> ListC = new List<C>();
            for (int i = 0; i < 10; i++)
            {
                ListA.Add(new A() { id = i, name = "name" + i.ToString() });
                ListB.Add(new B() { id = i, age = 20 + i });
                ListC.Add(new C() { id = i, address = "地址" + i.ToString() });
            }

            var kk = from a in ListA
                     join b in ListB on a.id equals b.id //join操作
                     join c in ListC on a.id equals c.id //join操作
                     where a.name.IndexOf("name") >= 0  // where操作
                     select new
                     {       //重新组织列
                         id = a.id,
                         name = a.name,
                         age = b.age,
                         address = c.address
                     };
            StringBuilder sb = new StringBuilder();
            foreach (var o in kk)
            {
                sb.Append( o.id + " " + o.name + " "  +  o.age + " " + o.address + "\n");
            }
            richTextBox1.Text = sb.ToString();
        }
时间: 2024-10-13 20:07:26

使用 Linq 对多个对象进行join操作 C#的相关文章

Linq之Join操作

1 摘要 文章通过一个简单的实例对Linq中的Join操作进行演示,并在文章的最后对Join操作相关知识点进行简单的总结. 2 实例演示 1) 新建数据库MyTestDB,在数据库中新建数据表tb_Class和tb_Student,两表的定义如下图所示.                                        图1  tb_Class的定义                                                                    

LINQ to SQL语句(4)之Join

1.一对多关系(1 to Many): var q = from c in db.Customers from o in c.Orders where c.City == "London" select o; 语句描述:Customers与Orders是一对多关系.即Orders在Customers类中以 EntitySet形式出现.所以第二个from是从c.Orders而不是db.Orders里进行筛选 .这个例子在From子句中使用外键导航选择伦敦客户的所有订单. var q =

编发编程(Process对象的join方法)

一 Process对象的join方法 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况 情况一:在主进程的任务与子进程的任务彼此独立的情况下,主进程的任务先执行完毕后,主进程还需要等待子进程执行完毕,然后统一回收资源. 情况二:如果主进程的任务在执行到某一个阶段时,需要等待子进程执行完毕后才能继续执行,就需要有一种机制能够让主进程检测子进程是否运行完毕,在子进程执行完毕后才继续执行,否则一直在原地阻塞,这就是join方法的作用 阻塞当前进

SQL Server编程系列(2):SMO常用对象的有关操作

在上一篇讲述了SMO的一些基本概念,实际上SMO体系结构远不止周公在上一篇中讲述的那么简单,下图是MSDN上给出的一个完整的结构图: 上图是一个完整的涉及到各种关系的结构图.不过它们之间的层次结构关系周公已经在上一篇做了简单概述. 在本篇中周公还是在上一篇的基础上再做稍微深入一点的介绍,在本篇中主要讲述如何获取数据库常见对象信息,并且如何利用SMO来进行一些日常操 作:如创建Login,创建数据库.备份数据库和还原数据库.执行上面这些操作的SQL语句也许我们已经写过,下面我们来看看利用SMO来操

MapReduce中的Reduce join操作

-------file1[ID NAME]-------- 1 zhangsan2 lisi3 wangwu -------file2[ID VALUE]--------1 452 563 89 -------结果[NAME VALUE]------------zhagnsan 45lisi 56wangwu 89 一般数据库的join操作 a join b  on a.id = b.id 后面的条件在reduce中指的是相同的key,在sql中很容易区分出后面条件的字段到底来自那张表 而在Ma

MapReduce中的Map join操作

可以使用setup进行去读,吧数据读取放到一个容器中,在map段去读的时候,可以根据ID就找出数据,然后再转化回来 map端的join 适用场景,小表可以全部读取放到内存中,两个在内存中装不下的大表,不适合Map端的join操作 在一个TaskTracker中可以运行多个map任务.每个map任务是一个java进程,如果每个map从HDFS中读取相同的小表内容,就有些浪费了.使用DistributedCache,小表内容可以加载在TaskTracker的linux磁盘上.每个map运行时只需要从

Hibernate对象的CRUD操作

1.  Hibernate对象的CRUD操作 1.1.  对象的三种状态 瞬时(Transient) - 由new操作符创建,且尚未与HibernateSession 关联的对象被认定为瞬时(Transient)的.瞬时(Transient)对象不会被持久化到数据库中,也不会被赋予持久化标识(identifier).如果瞬时(Transient)对象在程序中没有被引用,它会被垃圾回收器(garbage collector)销毁.使用Hibernate Session可以将其变为持久(Persis

关于PHP面向对象中—类的定义与对象的实例化操作以及构造、析构函数的特殊用法

类的定义与对象的实例化操作 <?php //类里面的成员是属于对象的class Hero{    public $name;//成员变量    //成员属性(存在于强类型语言中)    protected $blood;    private $attack;    //成员方法    function skill(){        echo "$this->name<br>control";            }} $s = new Hero();//造

MapReduce实现Reduce端Join操作实例

使用案例: 联接两张表 Table EMP:(新建文件EMP,第一行属性名不要) Name Sex Age DepNo zhang male 20 1 li female 25 2 wang female 30 3 zhou male 35 2 Table Dep:(新建文件DEP,第一行属性名不要) DepNo DepName 1 Sales 2 Dev 3 Mgt Inner join: select Name,Sex,Age,DepName from EMP inner join DEP