linq 一栏表

嘿嘿,其实就是一张图:

将多个输入联接到一个输出序列

   class Student
    {
        public string Name { get; set; }

        public int Age { get; set; }

        public string City { get; set; }

        public List<int> Scores { get; set; }
    }

    class Teacher
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public int Age { get; set; }

        public string City { get; set; }

    }

操作代码:

public void Concat()
        {
            //创建第一个数据源
            var students = new List<Student>()
            {
                new Student()
                {
                    Age = 23,
                    City = "广州",
                    Name = "小C",
                    Scores = new List<int>(){85,88,83,97}
                },
                new Student()
                {
                    Age = 18,
                    City = "广西",
                    Name = "小明",
                    Scores = new List<int>(){86,78,85,90}
                },
                new Student()
                {
                    Age = 33,
                    City = "梦里",
                    Name = "小叁",
                    Scores = new List<int>(){86,68,73,97}
                }
            };

            //创建第二个数据源
            var teachers = new List<Teacher>()
            {
                new Teacher()
                {
                    Age = 35,
                    City = "梦里",
                    Name = "啵哆"
                },
                new Teacher()
                {
                    Age = 28,
                    City = "云南",
                    Name = "小红"
                },
                new Teacher()
                {
                    Age = 38,
                    City = "河南",
                    Name = "丽丽"
                }
            };

            //创建我们的contact
            var concat = (from s in students
                          where s.City == "新都"
                          select s.Name
                        ).Concat(
                         from t in teachers
                         where t.City == "重庆"
                         select t.Name
                        );
            //使用我们concat将我们的两个数据集联系在一起滴呀;效果很好的;
        }

2.将内存中的对象转换为 XML

            var students = new List<Student>()
            {
                new Student()
                {
                    Age = 18,
                    Name = "小A",
                    Scores = new List<int>() {88,85,74,66 }
                },
                new Student()
                {
                    Age = 35,
                    Name = "小B",
                    Scores = new List<int>() {88,85,74,66 }
                },
                new Student()
                {
                    Age = 28,
                    Name = "小啥",
                    Scores = new List<int>() {88,85,74,66 }
                }
            };

            //创建查询
            var studentsToXml = new XElement("Root",
                from student in students
                let x = $"{student.Scores[0]},{student.Scores[1]},{student.Scores[2]},{student.Scores[3]}"
                select new XElement("student",
                new XElement("Name", student.Name),
                new XElement("Age", student.Age),
                new XElement("Scores", x))
            )

这里捋一捋这个let的使用滴呀;

在Linq查询中Let子句可以创建一个新的范围变量,并使用该变量保存表达式的结

$"{radius * radius * 3.14}" 相当于 string.Format("{0}",radius * radius * 3.14),这里采用的是 C# 6.0 的语法

时间: 2024-10-05 19:20:10

linq 一栏表的相关文章

EF框架下 Linq语句多表联查排序实例

一些原因需要用到linq的多表联查,网上查了下资料,顺便整理了一下,包括了模糊查询,分页,排序字段. 话不多说,直接上代码 public List<ExamineUserEntity> GetUserExamineList(string username, string phone, int pageindex, int pagesize) { var query = (from exam in db.T_USEREXAMINE join user in db.T_EXAMINE_USER o

LINQ构建交叉表

最近碰到客户的一个需求.使用交叉表来显示客户数据.也就是以同时以行头和列头交叉形式显示数据内容.同时要求即使有些列没有数据,也需要显示该列内容,并设置默认值. 说明: "交叉表"对象是一个网格,用来根据指定的条件返回值.数据显示在压缩行和列中.这种格式易于比较数据并辨别其趋势.它由三个元素组成: 行 列 摘要字段 以下是SQL表的数据结构: 学生 课程 分数 王佳佳 语文 90 李晓华 语文 39 王佳佳 英语 42 李建军 英语 33 吴培华 数学 20 这是用于显示的表结构: 学生

Linq的连表查询

Linq做连表查询,可以先查出A.B表,然后再join A.B表,操作A.B组合的匿名表X var table1=from r in shiti.a() from y in r.years where y>2010 select new { year=y, name=r.FirstName }; var table2=from t in shiti.b() from y in t.years where y>2010 select new { year=y, name=t.name } 然后根

全国排名的问题(linq 的连表查询 等同于sql的left join)

前言:要获得全国排名,(因为权限问题,显示的数据不是全国的数据,而是某个分区的数据,因此,不能获得数据后排序得到排名) 显示本部的员工积分并且获得在全国的排名. 我的思路:获得显示的员工信息集合1,获得全国的员工ID,积分和,排名的数据集合2,根据集合1的员工在集合2里直接将排名取出 1.获得显示的员工信息  list1(具体就不展示了) 2.获得全国的员工ID,积分和,排名的数据集合2 表1:员工表     表2:积分表 一个员工可以有多条积分记录,也可能没有数据 1 var national

Linq批量建表

public JsonResult CreateTable() { db = new RZBDbContext(); var query = (from c in db.Clients select new { pre = c.Prefix }).ToList(); foreach (var d in query) { //遍历循环client 生成表 //创建数据表 var file = Server.MapPath("~/App_Data/create_log.sql"); var

LINQ 联查多表数据并封装到ViewModel的实现

public List<MyTask> GetPagedTaskList(int pageIndex, int pageSize, string stuNum, int taskTypeId)        { DbSet<T_TaskParticipation> taskParticipations = db.Set<T_TaskParticipation>();            DbSet<T_TaskInformation> taskInform

Linq多表查询 返回组合实体 踩坑记

新年就不再记流水账了吧,无关紧要的日志太多也不好,有时要找自已记录的一些要点要翻半天 春节假期在家陆陆续续也有在做公司的事,主要是重构,接手的代码看着比较乱,花了很多时间来重构,现在看上去好多了. 使用Linq进行多表查询,要返回各个表的几个组合数据, public class A{ public string NameA{get; set;} } public class B{ public string NameB{get; set;} } 1.原先项目是定义了一个类,里面包含几张表的各个字

MVC +EF+linq 多表联查

关于linq的多表联查效果的实现: 后台多表查询  内连接: SELECT [Extent2].[partID] AS [partID], [Extent1].[userName] AS [userName], [Extent3].[partName] AS [partName]FROM [dbo].[User] AS [Extent1]INNER JOIN [dbo].[User_partB] AS [Extent2] ON [Extent1].[userGUID] = [Extent2].[

从LinqPad入门Linq

为什么要学习Linq? 在我们日常开发中,经常需要从数据库中执行各式各样的查询来获取需要的数据.但是如果需要对查询获得的数据进行二次筛选呢?linq就提供了对于可枚举类型(实现IEnumerable接口)的一种便捷查询方式.正如其名Language Integrated Query语言集成查询. 下载LinqPad LinqPad官方网站http://www.linqpad.net/,此篇示例使用的是LinqPad4. 安装完成后界面如下: 点击左侧Add connection,添加数据库连接,