首页 > 编程语言 >[C#]学生床位占比求解备忘录-Linq技术Demo

[C#]学生床位占比求解备忘录-Linq技术Demo

时间:2022-10-17 22:25:15浏览次数:37  
标签:StuName C# Demo DormName Linq DormId new NotNullBedNum Id

代码参考:

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqGroupByDemp
{
    class Dorm
    {
        public string Id { get; set; }
        public int NotNullBedNum { get; set; }
        public string  DormName { get; set; }
       
    }
    class StuDorm
    {
        public string Id { get; set; }
        public string StuName { get; set; }
        public string DormId { get; set; }
        public int NotNullBedNum { get; set; }
        public string DormName { get; set; }

    }
    class Program
    {
        static void Main(string[] args)
        {
            List<Dorm> dorm = new List<Dorm>
            {
                new Dorm {Id="11",NotNullBedNum=4,DormName="N11"},
                new Dorm {Id="22",NotNullBedNum=888,DormName="N22"},
                new Dorm {Id="33",NotNullBedNum=2,DormName="N33"},
                new Dorm {Id="44",NotNullBedNum=5,DormName="N44"},
                new Dorm {Id="55",NotNullBedNum=888,DormName="N55"},
                new Dorm {Id="66",NotNullBedNum=888,DormName="N66"},
                new Dorm {Id="77",NotNullBedNum=888,DormName="N77"},
                new Dorm {Id="88",NotNullBedNum=888,DormName="N88"},
                new Dorm {Id="99",NotNullBedNum=888,DormName="N99"}            
            };

            List<StuDorm> stuDorm = new List<StuDorm>
            {
                new StuDorm {Id="1",StuName="张三",DormId="11",NotNullBedNum=4,DormName="N11"},
                new StuDorm {Id="2",StuName="李四",DormId="11",NotNullBedNum=4,DormName="N11"},
                new StuDorm {Id="3",StuName="王志",DormId="11",NotNullBedNum=4,DormName="N11"},
                new StuDorm {Id="4",StuName="王大伟",DormId="33",NotNullBedNum=2,DormName="N33"},
                new StuDorm {Id="5",StuName="张长为",DormId="44",NotNullBedNum=5,DormName="N44"},
                new StuDorm {Id="6",StuName="高小军",DormId="44",NotNullBedNum=5,DormName="N44"},
                new StuDorm {Id="7",StuName="汪小韩",DormId="11",NotNullBedNum=4,DormName="N11"},
                new StuDorm {Id="8",StuName="刘坤",DormId="44",NotNullBedNum=5,DormName="N44"},
                new StuDorm {Id="9",StuName="赵涛",DormId="33",NotNullBedNum=2,DormName="N33"},
                new StuDorm {Id="10",StuName="党利",DormId="44",NotNullBedNum=5,DormName="N44"},
                new StuDorm {Id="11",StuName="吴利",DormId="44",NotNullBedNum=5,DormName="N44"}
            }; 


            var q = from dM in dorm
                    join sD in stuDorm
                    on dM.Id equals sD.DormId into g
                    from o in g.DefaultIfEmpty(new StuDorm { Id = "00", StuName = "xx", DormId = "yy", NotNullBedNum = -1, DormName = "zz" })
                    select new
                    {
                        DormId = dM.Id,
                        StuDormId=o.Id,
                        NotNullBedNum = o.NotNullBedNum,
                        DormName = dM.DormName
                    };

            foreach (var e in q)
            {
                Console.WriteLine("{0}------{1}---------{2}-----------{3}", e.DormId, e.StuDormId, e.NotNullBedNum, e.DormName);
            }

            var rr = from e in q
                     where e.StuDormId != "00"
                     group e by e.DormId into gg                   
                    select new
                    {
                        DormId = gg.Key,
                        NotNullBedNum = gg.Count()
                    };


            foreach (var ee in rr)
            {
                Console.WriteLine("{0}======{1}", ee.DormId, ee.NotNullBedNum);          

            }

            var rrr = from e in q
                     where e.StuDormId=="00"                     
                     select new
                     {
                         DormId = e.DormId,                  
                         NotNullBedNum =0
                     };

            var a = rr.Union(rrr);
            foreach (var ee in a)
            {
                Console.WriteLine("{0}/////////////////////////////{1}", ee.DormId, ee.NotNullBedNum);            

            }


        }
    }
}

 

标签:StuName,C#,Demo,DormName,Linq,DormId,new,NotNullBedNum,Id
From: https://www.cnblogs.com/exesoft/p/16800935.html

相关文章

  • AtCoder Regular Contest 151
    A如果\(S\)和\(T\)的某一位相同,那么\(U\)无论怎么填都无法影响答案,为了字典序最小,一定填\(0\)。只考虑\(S\)和\(T\)不同的位置,假设有\(k\)位不同,易知\(k\)......
  • CF1468H
    首先判掉\((n-m)\bmod(k-1)\ne0\)的情况,显然是无解的。考虑消去的最后一步,必然是以\(b\)中的某一元素为中位数进行的。于是得到了一个必要条件:存在一个\(b_i\),满足......
  • IOC生命周期 -3种生命周期
    IServiceProvider处理提供所需服务实例,有需要还会负责释放服务实例。具体操作为调试用实例的dispose或者异步dispose方法。scoped和transient:当前Iserviceprovider......
  • 【Azure 应用服务】登录App Service 高级工具 Kudu站点的 Basic Auth 方式
    问题描述从AzureAppService的页面中,直接跳转到高级管理工具Kudu站点(https://<yourappservicename>.scm.chinacloudsites.cn/)时,可以自动使用AAD用户(即登录Azure门......
  • AtCoder Regular Contest 150
    A考虑枚举每一个区间,考虑如何\(\mathcalO(1)\)判断。如果区间符合条件当且仅当区间内没有\(0\),区间外没有\(1\)。维护一个前缀和即可。点击查看代码#include<b......
  • Ubuntu 环境下安装 Docker
    系统要求Docker目前只能运行在64位平台上,并且要求内核版本不低于3.10,实际上内核越新越好,过低的内核版本容易造成功能不稳定。用户可以通过如下命令检查自己的内......
  • day49-JDBC和连接池05
    JDBC和连接池0511.BasicDAO先来分析一个问题前面我们使用了Apache-DBUtils和Druid简化了JDBC开发,但仍存在以下不足:SQL语句是固定的,不能通过参数传入,通用性不好,需要......
  • 准备一个月去参加ACM,是一种什么体验?
    目录​​比赛前:​​​​比赛中:​​​​比赛后:​​​​ACM入门学习路线:​​​​总结:​​比赛前:小结:作为一个医学院校的信息专业的学生(算法小菜鸡),也作为咱们专业第一届参加ACM......
  • python爬虫从0到1 -urllib_Cookie登录
    前言当我们进行某项数据采集的时候,有时会让我们进行登录,那我们要怎样去解决这个问题呢?为了不让我们爬取这些数据,又采取了怎么样的反爬措施呢?下面就让我们带着这些问题去一探......
  • opencv
    介绍opencv是一个开源的用于图像处理的库,它对包括C/C++、java、python等语言有支持。安装将opencv\python\2.7\x64\cv2.pyd拷贝到python的安装目录下:Python27\Lib\site-pac......