学习也是做买卖,归根到底还是学习成本的问题。

下面把微软集合类型的增删改查稍微罗列一下,大家看看它能带来的便利,和你要学的新东西,还有风险(纯粹的数据操作,不用框架,风险其实不大)相比,是否值得。来决定是跳过,还是了解,还是精研。(建议敲一遍了解一下,以后写的东西如果频繁遇到数据的小操作,可以回来翻翻,研究研究,多个选择)

1、增删改查

 var a = new List<Person>();
Person user;
a.Add(new Person() { Name = "zs", Nl = });
a.Add(new Person() { Name = "ls", Nl = });
a.Add(new Person() { Name = "ww", Nl = });
user = (from x in a where x.Name == "zs" select x).Single();
////a.Remove(user);
//user.Nl=25; foreach (var item in a)
{
Console.WriteLine(item.Name + "\t" + item.Nl); }
Console.ReadKey();

说明:

  (1)第6行括号里是一种微软筛选数据的语法,叫做Linq。Linq还是有点东西的,绝不像例子里写的那么简单。有关这种语法,可以自己搜着看看,了解一下。

  (2)single方法的作用是,从集合(由一条完全相同的记录重复构成)中转化出一条记录,有点像类型转换,从多条变一条。如果原集合含有多条不相同的数据,则报错。

  (3)第7行会删除查到的数据,第8行会修改查到的数据。如果是真正的数据模型,记得要用savechanges存入库。

  (4)批量删除可以用RemoveAll方法,和lambda表达式一起用。

  (5)批量修改可以用下面的代码:

 var guys = from x in a where x.Nl >  select x;
foreach (var item in guys)
{
item.Nl++;
}

2、不用Linq,这一系列有些扩展方法,比如:

      Where,Max,Select,Sum,Any,Average,All,Concat等

      都是针对IEnumerable的对象进行扩展的

      也就是说,只要实现了IEnumerable接口,就可以使用这些扩展方法(List和Dbset都实现了的)

      来看看这段代码:      

List<int> arr = new List<int>() { , , , , , ,  };
var result = arr.Where(a => { return a > ; }).Sum();
Console.WriteLine(result);
Console.ReadKey();

      这段代码中,用到了两个扩展方法。

      <1>

        Where扩展方法,需要传入一个Func<int,bool>类型的泛型委托

        这个泛型委托,需要一个int类型的输入参数和一个布尔类型的返回值

        我们直接把a => { return a > 3; }这个lambda表达式传递给了Where方法

        a就是int类型的输入参数,返回a是否大于3的结果。

      <2>

        Sum扩展方法计算了Where扩展方法返回的集合的和。

另外的例子:

var a = new List<Person>();
a.Add(new Person() { Name = "zs", Nl = });
a.Add(new Person() { Name = "ls", Nl = });
a.Add(new Person() { Name = "ww", Nl = });
var result = a.Where(b => b.Nl > ).Select(b=>b.Nl).Sum();//所有人18岁以上的人,年龄求和。
Console.WriteLine(result);
Console.WriteLine(a.Any(x => x.Nl < ));// 如果集合中有任何一个元素满足该条件就返回true
Console.WriteLine(a.Where(b => b.Nl > ).All(x=>x.Nl < ));// 如果集合中所有元素都满足该条件,返回true
foreach (var item in a.Where(b => b.Nl > ).Concat(a))//Concat用来连接两个集合
{
Console.WriteLine(item.Name + "\t" + item.Nl);
}
Console.ReadKey();

可以自己运行一下,看看效果。

需要注意的是,any的用法以上面的注释为准,vs的提示(所有元素都满足条件才返回true)是错的。

MVC里模型常用的一些操作的更多相关文章

  1. Django之模型层:表操作

    目录 Django之模型层:表操作 一.ORM简介 django测试环境搭建 Django终端打印SQL语句 二 单表操作 2.1 按步骤创建表 2.2记录 三.多表操作 1 创建模型 2 添加.删除 ...

  2. ASP.NET MVC+EF5 开发常用代码

      Asp.Net Mvc,EF 技术常用点总结 1.Asp.Net MVC a)获得当前控制器名和当前操作的名称(action) 1.Action 中 RouteData.Values[" ...

  3. ASP.NET MVC数组模型绑定

    在ASP.NET MVC中使用Razor语法可以在视图中方便地展示数组,如果要进行数组模型绑定,会遇到索引断裂问题,如下示例: <input type="text" name ...

  4. MVC数组模型绑定

    ASP.NET MVC数组模型绑定   在ASP.NET MVC中使用Razor语法可以在视图中方便地展示数组,如果要进行数组模型绑定,会遇到索引断裂问题,如下示例: <input type=& ...

  5. ---web模型 --mvc和模型--struts2 入门

    关于web模型: 早期的web 应用主要是静态页丽的浏览〈如新闻的制监),随着Internet的发展,web应用也变得越来越复杂,不仅要 和数据库进行交互 ,还要和用户进行交互,由此衍生了各种服务器端 ...

  6. 探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  7. ASP.NET Core 中文文档 第四章 MVC(4.2)控制器操作的路由

    原文:Routing to Controller Actions 作者:Ryan Nowak.Rick Anderson 翻译:娄宇(Lyrics) 校对:何镇汐.姚阿勇(Dr.Yao) ASP.NE ...

  8. MVC 编程模型及其变种

    MVC 编程模型及其变种 MVC全称是Model View Controller, 这是一个模型(model)-查看(view)-调节器(controller)缩写,这是通过通用的编程模型非.MVC当 ...

  9. TP5常用命令符操作

    ThinkPHP5常用命令符操作   1. 模块自动生成指令:   默认会读取应用目录application下面的build.php作为自动   生成的定义文件,如果你的定义文件位置不同,则需要使用 ...

随机推荐

  1. 起步:SpringBoot

    pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spr ...

  2. Debian x7中如何添加永久环境变量

    一.进入/etc/bash.bashrc(使用文本编辑器打开) 二.在最后面添加新的环境变量 export PATH=usr/...(路径):$PATH 三.保存后,打开终端,输入source ~/. ...

  3. 其它综合-CentOS7 解决忘记root密码

    CentOS7 解决忘记root密码 1.重启 长时间不用的 CentOS 机器再次开机的时候忽然忘记了密码,总不能就重装一台吧,还有好多服务在机器上,于是决定重置 root 的密码. 如果是已经开启 ...

  4. 笔记6:Django基础

    Django-MVT (1)查看python版本号: python -m django --version (2) 创建Django项目 django-admin startproject mysit ...

  5. yum总结

    yum企业案例          yum命令工具参数详解 yum install httpd 安装httpd软件包 yum search YUM搜索软件包 yum list httpd 显示指定程序包 ...

  6. springcloud注解解释

    @SpringBootApplication是springboot启动类,包括三个注解,他们的作用分别是:  @Configuration:表示将该类作用springboot配置文件类  @Enabl ...

  7. ReportMachine打印条形码的问题

    ReportMachine打印条形码的问题 最近用RM报表来打印条形码,调试过程非常顺利,扫描枪识别也很正常,唯独斑马打印机的走纸不准确是个问题,正好客户不想用这种纸型,并定制了新纸型,心想等新纸型到 ...

  8. Docker底层原理(三)

    1. 我们运行:docker run hello-world 由于本地没有hello-world,所以会远程下载一个hello-world的镜像,并在容器内运行. 2. docker run干了什么?

  9. z+f数据解析

    1.先打开cmd2.把D:\qcc\编译和解析\debug_jiexi\SampleZFS.exe 拉进来.3.SampleZFS.exe -i *.zfs -o D:\*.txt 注意:*号代表文件 ...

  10. webapi跨域实现(CROS、JSONP)

    CROS: /// <summary> /// 支持WebAPI服务器端跨域 /// </summary> public class ServerCrossDomainAttr ...