1:先看效果:

2:部分代码截图

3:全部代码

 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 namespace Redistest02
5 {
6 class Program
7 {
8 static void Main(string[] args)
9 {
10 //Console.WriteLine("Hello DoSubscriberAsync!");
11 //MyRedisHelper.DoSubscriberAsync("myredis").Wait(30);
12 //Console.ReadLine();
13
14 //==================准备模拟两张表的数据
15 var list01 = new List<Student>();//3条数据
16 Enumerable.Range(1, 3).ToList().ForEach(c =>
17 {
18 list01.Add(new Student { id = 11 + c, Name = "qq" + c });
19 });
20
21 var list02 = new List<Student>();//两条数据
22 list02.Add(new Student { id = 12, Name = "qq1" });
23 list02.Add(new Student { id = 13, Name = "qq2" });
24
25 Console.WriteLine("==========左连接==以左边为准=============");
26 //左连接
27 var newlistL = (from q in list01
28 join a in list02
29 on q.id equals a.id into qa
30 from c in qa.DefaultIfEmpty()
31 select new Student
32 {
33 id = c == null ? 0 : c.id,
34 Name = c == null ? "空的" : c.Name
35 }).ToList();
36 newlistL.ForEach(c => Console.WriteLine($"id={c.id},name={c.Name}"));
37
38 //右连接
39 Console.WriteLine("==========右连接===以右边为准============");
40 var newlistR = (from a in list02
41 join q in list01
42 on a.id equals q.id into qa
43 from c in qa.DefaultIfEmpty()
44 select new Student
45 {
46 id = c == null ? 0 : c.id,
47 Name = c == null ? "空的" : c.Name
48 }).ToList();
49 newlistR.ForEach(c => Console.WriteLine($"id={c.id},name={c.Name}"));
50
51 //内连接
52 Console.WriteLine("==========内连接======两边共同的数据=========");
53 var newlistI = (from a in list02
54 join q in list01
55 on a.id equals q.id
56 select new Student
57 {
58 id = q == null ? 0 : q.id,
59 Name = q == null ? "空的" : q.Name
60
61 }).ToList();
62 newlistI.ForEach(c => Console.WriteLine($"id={c.id},name={c.Name}"));
63
64
65 Enumerable.Range(1, 10).ToList().ForEach(c =>
66 {
67 Console.WriteLine(c);
68 });
69 var listdata = Enumerable.Empty<Student>();
70 Console.WriteLine($"listdata的集合对象数据是:{listdata.Count()}个,null就会报错的!");
71 }
72 }
73
74 public class Student
75 {
76 public int id { get; set; }
77 public string Name { get; set; }
78 // public DateTime Birthday { get; set; }
79
80 //public IEnumerable<Student> GetSpectionMenthod
81 //{
82 // get
83 // {
84 // // yield return Enumerable.Empty<Student>().FirstOrDefault();
85 // yield return new Student { };
86 // }
87 }
88
89 }

怎么样,看了之后还是很简单的对吧,嘻嘻!

core的 Linq基本使用,简单模拟数据库多表的左右内连接的测试的更多相关文章

  1. 【MySQL】使用MySQL(连接、选择数据库、显示数据库和表信息)

    第3章 使用MySQL 文章目录 第3章 使用MySQL 连接 选择数据库 了解数据库和表 小结 简单记录 - MySQL必知必会 - [英]Ben Forta 将学习如何连接和登录到MySQL,如何 ...

  2. MVC5+EF6简单实例---以原有SQLServer数据库两表联合查询为例

    有二三年没写代码了,**内的工作就是这样,容易废人!看到园子里这么多大侠朝气蓬勃的,我想也要学点东西并和大家分享,共同进步!快乐每一天,进步每一天!言归正传! 通过最近一段时间对MVC5.EF6的学习 ...

  3. C#7.2——编写安全高效的C#代码 c# 中模拟一个模式匹配及匹配值抽取 走进 LINQ 的世界 移除Excel工作表密码保护小工具含C#源代码 腾讯QQ会员中心g_tk32算法【C#版】

    C#7.2——编写安全高效的C#代码 2018-11-07 18:59 by 沉睡的木木夕, 123 阅读, 0 评论, 收藏, 编辑 原文地址:https://docs.microsoft.com/ ...

  4. MVC 学习(二)之Linq to Sql 简单Demo

    Linq to Entities 已经我的一篇博文中阐述了,这里阐述一下简单的Linq to Sql 的增删改查.Linq to sql 与Linq to Entities虽然同属于DataBase- ...

  5. Objective-C ,ios,iphone开发基础:ios数据库(The SQLite Database),使用终端进行简单的数据库操作

    SQLite  是一个轻量级的免费关系数据库.SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的内存就够了,可以在(http://www.sqlite.org ...

  6. 简单模拟Hibernate的主要功能实现

    在学习期间接触到Hibernate框架,这是一款非常优秀的O/R映射框架,大大简化了在开发web项目过程中对数据库的操作.这里就简单模拟其底层的实现. /*******代码部分,及其主要注解***** ...

  7. [置顶] Objective-C ,ios,iphone开发基础:ios数据库(The SQLite Database),使用终端进行简单的数据库操作

    SQLite  是一个轻量级的免费关系数据库.SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的内存就够了,可以在(http://www.sqlite.org ...

  8. Jquery源码分析与简单模拟实现

    前言 最近学习了一下jQuery源码,顺便总结一下,版本:v2.0.3 主要是通过简单模拟实现jQuery的封装/调用.选择器.类级别扩展等.加深对js/Jquery的理解. 正文 先来说问题: 1. ...

  9. Linq to SQL 简单的增删改操作

    Linq to SQL 简单的增删改操作. 新建数据库表tbGuestBook.结构如下: 新建web项目,完成相应的dbml文件.留言页面布局如下 <body> <form id= ...

随机推荐

  1. JDBC+MySQL入门实战(实现CURD的例子)

    前言 hello我是bigsai,今天咱们进行JDBC+MySQL实战,非常适合初入门的小伙伴打开新的世界.实现一个增删改查(curd)的例子.先点赞再观看.帅哥靓女养成好习惯! 在这个案例进行之前, ...

  2. [netty4][netty-transport]netty之nio传输层

    [netty4][netty-transport]netty之nio传输层 nio基本处理逻辑 查看这里 Selector的处理 Selector实例构建 NioEventLoop.openSelec ...

  3. JS中new Date()用法及获取服务器时间

    1.获取服务器时间: var now = new Date($.ajax({async: false}).getResponseHeader("Date")); 2.new Dat ...

  4. Dbeaver连接Hive和Mysql的配置

    1.连接Hive 首选需要配置Hive 这里我们采用的是JDBC的连接方式 (1) 在Hive中后台启动hiveserver2 [root@hadoop-101 hive]# bin/hiveserv ...

  5. 大数据理论篇HDFS的基石——Google File System

    Google File System 但凡是要开始讲大数据的,都绕不开最初的Google三驾马车:Google File System(GFS), MapReduce,BigTable. 为这一切的基 ...

  6. nova 数据库中删除虚机

    Database changed MariaDB [nova]> SET FOREIGN_KEY_CHECKS=; Query OK, rows affected (0.000 sec) Mar ...

  7. elaticsearch

  8. OpenStack 服务心跳机制和状态监控

    参考链接: OpenStack服务心跳机制和状态监控 https://blog.csdn.net/qqhappy8/article/details/79304221

  9. golang mysql demo

    Go操作Mysql数据库 使用Go操作MySQL等数据库,一般有两种方式:一是使用database/sql接口,直接在代码里硬编码sql语句:二是使用gorm,即对象关系映射的方式在代码里抽象的操作数 ...

  10. MySQL数据库修改字段名、字段类型、字段长度

    1.MySQL数据库中,修改字段SQL如下: alter table AppVersion change version versionCode varchar() DEFAULT NULL COMM ...