linq

算法面试题:一个List<Student>,要求删除里面的男生,不用Linq和Lamda,求各种解,并说明优缺点!

给你一囗甜甜゛ 提交于 2020-08-11 15:36:54
算法面试题:一个List ,要求删除里面的男生,不用Linq和Lamda,求各种解,并说明优缺点! 解题思路 这是群里某位小伙伴去面试碰到的面试题,从题目本身来看,面试官应该是要考察面试者对泛型 List 的理解程度,也算是对基础的理解。这里面还是有很多需要考察的知识点,没关系,我们走一步看一步。 首先,题目没有限定数量,我们知道,只谈毒性不谈剂量的都是耍流氓,那我们就假定要处理的数据有 10000 条好了。 数据准备好了 static readonly string text =

Rx.NET响应式编程

落花浮王杯 提交于 2020-08-11 13:50:54
响应式编程 Rx.NET 了解下 1. 引言 An API for asynchronous programming with observable streams. ReactiveX is a combination of the best ideas from the Observer pattern, the Iterator pattern, and functional programming . ReactiveX 使用可观察数据流进行异步编程的API。 ReactiveX结合了观察者模式、迭代器模式和函数式编程的精华 。 关于Reactive(本文统一译作响应式),有一个 The Reactive Manifesto 【响应式宣言】: 响应式系统(Reactive System)具备以下特质:即时响应性(Responsive)、回弹性(Resilient)、弹性(Elastic)以及消息驱动(Message Driven)。 很显然开发一个响应式系统,并不简单。 那本文就来讲一讲如何基于Rx.NET进行响应式编程,进而开发更加灵活、松耦合、可伸缩的响应式系统。 2. 编程范式 在开始之前呢,我们有必要了解下几种编程范式:命令式编程、声明式编程、函数式编程和响应式编程。 命令式编程 :命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么。

武装你的WEBAPI-OData分页查询

浪尽此生 提交于 2020-08-11 13:49:17
本文属于OData系列 目录 武装你的WEBAPI-OData入门 武装你的WEBAPI-OData便捷查询 武装你的WEBAPI-OData分页查询 武装你的WEBAPI-OData资源更新 武装你的WEBAPI-OData之EDM 武装你的WEBAPI-OData常见问题 武装你的WEBAPI-OData使用Endpoint Introduction 分页是数据请求避免不了的问题,数据很多的情况下,通过GET请求一次性返回所有的数据,不光性能底下,而且不好展示。 分页的原理就是客户端请求服务器,服务器返回的数据是有限的数据(限制于pageSize),同时返回一个数据的总量count,方便客户端进行处理。也有另外一种实现,使用nextlink指示下一页的位置。 传统实现 传统的实现,我比较喜欢LINQ的Skip和Take方法。 /// <summary> /// 有参GET请求 /// </summary> /// <returns></returns> [HttpGet("page")] [ProducesResponseType(typeof(ReturnData<Page<UserInfoModel>>), Status200OK)] [ProducesResponseType(typeof(ReturnData<string>), Status404NotFound)]

LINQ的左连接、右连接、内连接

只谈情不闲聊 提交于 2020-08-11 13:13:19
1、左连接: var LeftJoin = from emp in ListOfEmployees join dept in ListOfDepartment on emp.DeptID equals dept.ID into JoinedEmpDept from dept in JoinedEmpDept.DefaultIfEmpty() select new { EmployeeName = emp.Name, DepartmentName = dept != null ? dept.Name : null }; 2、右连接: var RightJoin = from dept in ListOfDepartment join employee in ListOfEmployees on dept.ID equals employee.DeptID into joinDeptEmp from employee in joinDeptEmp.DefaultIfEmpty() select new { EmployeeName = employee != null ? employee.Name : null, DepartmentName = dept.Name }; 3、内连接: var query = from t in entitiy.TB_GCGL_ADA_USER

Entity Framework Core

二次信任 提交于 2020-08-11 12:13:19
原文: Entity Framework Core - CURD 【EF框架】DbContext的使用: https://blog.csdn.net/zmh458/article/details/78935172 DBComtext使用 DbContext 类是 EntityFramework (简称 EF )中的一个类,可以理解为一个 数据库对象的实例 。在 EF 中,无需手动的拼接 SQL 语句对数据库进行增删改查,而是通过 DbContext 来进行相应操作。 DbContext类 DbContext是负责与数据交互作为对象的主要类。DbContext负责以下活动: (1)EntitySet: DbContext包含映射到数据库表的所有实体的实体集(DbSet )。 (2)查询(Querying): DbContext将LINQ-to-Entities查询转换为SQL查询并将其发送到数据库。 (3)更改跟踪(Change Tracking):跟踪实体在从数据库查询后发生的更改。 (4)持久数据(Persisting Data):它还根据实体的状态对数据库执行插入,更新和删除操作。 (5)缓存(Caching): DbContext默认进行一级缓存。它存储在上下文类生命周期中已经被检索的实体。 (6)管理关系(Manage Relationship):

ASP.NETCore使用AutoFac依赖注入

吃可爱长大的小学妹 提交于 2020-08-11 10:18:18
原文: ASP.NETCore使用AutoFac依赖注入 实现代码 1、新建接口类:IRepository.cs,规范各个操作类的都有那些方法,方便管理。 using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; namespace CMS.Entity.Interfaces { public interface IRepository<T> where T: class { /// <summary> /// 添加 /// </summary> /// <param name="entity"> 实体对象 </param> void Add(T entity); /// <summary> /// 更新 /// </summary> /// <param name="entity"> 实体对象 </param> void Update(T entity); /// <summary> /// 删除 /// </summary> /// <param name="entity"> 实体对象 </param> void Delete(T entity); /// <summary> /// 删除 /// <

ASP.NET Core中使用Autofac进行属性注入

点点圈 提交于 2020-08-11 08:48:54
原文: ASP.NET Core中使用Autofac进行属性注入 一些无关紧要的废话:   作为一名双修程序员(自封的),喜欢那种使用Spring的注解形式进行依赖注入或者Unity的特性形式进行依赖注入,当然,形式大同小异,但结果都是一样的,通过属性进行依赖注入。   ASP.NET Core中使用了自带的Dependency Injection作为了默认的IOC容器,当然有先天的优势,很多还是喜欢切换到Autofac作为IOC容器,Unity在.Net Core中还是有很大的优势的,但据我所知,Unity5已经由微软转交到基金会了,而且本身文档很少,翻译文档以及研究的就更加少了。   当然,说了一堆废话,Autofac本身也是支持属性注入的,但是很多还是使用构造器进行注入,我本身也是推荐使用构造器进行注入(其实我不是这么想的),因为使用属性进行注入,将会暴露当前类的属性(Autofac属性注入属性必须为public),Spring可以用private进行注入的,但是不知道为什么,Autofac我使用private的时候注入进来的时候是null,如果文章有错误的话,希望高手能在留言处指出,帮助我及更多人进步。谢谢。 ⒈新建一个ASP.NET Core MVC程序。 ⒉添加 NuGet 包 Install- Package Autofac Install -Package

c#中英文切换实例

有些话、适合烂在心里 提交于 2020-08-11 07:35:15
1.创建两个资源文件 Resource.en-US.resx Resource.zh-CN.resx 注意中间部分每种语言文件名固定,后缀名是.resx,首部分是自定义的名字 2.创建读写工具类 上面两个资源文件都是在Utility项目集中 当另一个含有UI的项目调用次Utility里的资源时需要引用此项目,然后编译后在UI的项目debug中会自动生成嵌入的文件如: debug\en-US\Utility.resources.dll 和debug\zh-CN\Utility.resources.dll 注意: ResourceManager rm = new ResourceManager("Utility.Resource", Assembly.GetExecutingAssembly());的调用就要以命名空间+资源文件首部名的形式。 using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Reflection; using System.Resources; using System.Text; using System.Threading; namespace WindowsFormsApplication1 {

一步步入门:NetCore WebApi (包含搭建Swagger)

本小妞迷上赌 提交于 2020-08-11 02:43:07
十年河东,十年河西,莫欺少年穷 学无止境,精益求精 首先,本篇教程为基础教程,大牛请翻过,小白值得一看 如下: 1、准备数据 create database StudentDB go use StudentDB go create table Student ( StudentId varchar ( 50 ) primary key , StudentSex nvarchar ( 2 ), StudentName nvarchar ( 50 ), StudentAge int , CreateDate datetime ) insert into Student values ( newid (), ' 女 ' , ' 王娜 ' , 18 , getdate ()) insert into Student values ( newid (), ' 女 ' , ' 李丽 ' , 19 , getdate ()) insert into Student values ( newid (), ' 女 ' , ' 阿卜杜拉 ' , 17 , getdate ()) insert into Student values ( newid (), ' 女 ' , ' 高骏花 ' , 20 , getdate ()) insert into Student values ( newid (),

ASP.NET MVC + EF 利用存储过程读取大数据,1亿数据测试很OK

大兔子大兔子 提交于 2020-08-11 01:53:37
看到本文的标题,相信你会忍不住进来看看! 没错,本文要讲的就是这个重量级的东西,这个不仅仅支持单表查询,更能支持连接查询, 加入一个表10W数据,另一个表也是10万数据,当你用linq建立一个连接查询然后利用take,skip读取第N页数据的时候, 你的程序就挂了,因为,你很可能读取需要几十秒甚至几分钟以上。 下面来讲解一下,ASP.NET MVC + EF 利用存储过程读取大数据的详细过程。 1.首先,我们创建一个实体类PageinationInfo,主要用于分页,如下 1 public class PageinationInfo 2 { 3 /// <summary> 4 /// 要显示的表或多个表的连接 5 /// </summary> 6 public string strTable { get ; set ; } 7 8 /// <summary> 9 /// 要查询的字段 10 /// </summary> 11 public string strField { get ; set ; } 12 13 /// <summary> 14 /// 每页多少条记录 15 /// </summary> 16 public int pageSize { get ; set ; } 17 18 /// <summary> 19 /// 当前页 20 /// </summary>