zoukankan      html  css  js  c++  java
  • List<>各函数的用法

    List<Model> list = 获取的集合数据;
    这里的Model表示实体对象,在项目中List经常用来存储


    将集合按照指定的键分组,如SQL语句中Group By 字段1,....;这里只能指定一个键,如果要按多个键分组,可以重复以下步骤
    IEnumerable<IGrouping<string, Model>> groups = list.GroupBy(ins => ins.Field, ins => ins);
    IGrouping<键的类型,对象类型>:list集合中的对象类型为Model,按Field分组,Field的类型为string.

    查询出list集合中符合条件的数据
    IEnumerable<Model> obj = list.Where(ins => "预想值".Equlas(ins.Field1) && ins.Field2 < DateTime.Now);
    ins:表示list中的每一个对象变量,等同于foreach(Model ins in list)
    如果想要像sql语句一样能模糊查询[like '%...%']也可以实现
    Where(model=>model.Field.IndexOf(condition)>=0);//=like '%...%';
    Where(model=>model.Field.StartsWith(condition)>=0);//=like '...%';
    Where(model=>model.Field.EndWith(condition)>=0);//=like '%...';
    在用List<Model>缓存数据的时候很有用处

    list.OrderBy(ins=>ins.Field).ToList()
    将list中的元素按Field键升序排列;如果要降序,可以
    list.OrderByDescending(ins=>ins.Field).ToList()
    eg:

    标题1 标题2 标题3
    aaa1 bbb1 ccc2
    aaa2 bbb2 ccc1

    点击表头中的任何一列{标题1,标题2,标题3}时,自动按此列排序,如:点"标题1"列,则按标题排序
    list.OrderBy(ins=>ins.GetType().GetProperty(order).GetValue(ins, null));
    order:点击的列名,区分大小写,与实体的属性名称要完全相同
    list.OrderBy(ins=>ins.GetType().GetProperty(order, System.Reflection.BindingFlags.IgnoreCase).GetValue(ins, null));
    这种方式为什么不能用呢?System.Reflection.BindingFlags.IgnoreCase这个不是指示忽略order大小写的吗?

    计算集合中某属性值的总和
    list.Sum(ins=>ins.Field);

    List在2.0的用法不一样,因为不支持Lambda表达式.可以用委托

    list.Find(delegate(object entity){
        //判断条件,true:表示找到了.不找了,false:表示未找到.接着找
        return entity == null;
    });

    二、查询

    放入list<string>  中 contains
    追问
    可以给点测试代码么  我搞不懂  就像SQL  where name like "a%";所查询出来的一样的道理
    回答
    其实是linq。。

    string aa = "ab";
    string bb = "acvb";
    string cc = "vbas";
    List<string> list = new List<string>();
    list.Add(aa);
    list.Add(bb);
    list.Add(cc);
    List<string> listresult = (list.Where(p => p.Contains("c"))).ToList<string>();
    追问
    List<string> listresult = (list.Where(p => p.Contains("c"))).ToList<string>();这句话是什么意思  
    p.Contains("c")指的是like "c%":
  • 相关阅读:
    频率和相位有什么关系
    DMA缓冲区乒乓操作的处理
    深入了解DSP与ARM的区别与联系
    python 里 np.array 的shape (2,)与(2,1)的分别是什么意思,区别是什么?(2020年修订)
    手写promise
    axios源码学习记录
    redux 之isPlainObject
    redux教程之源码解析3applyMiddleware(分析在注释中)
    redux教程之源码解析2 combineReducers(分析在注释中)
    redux教程之源码解析createStore
  • 原文地址:https://www.cnblogs.com/wilderhorse/p/3269753.html
Copyright © 2011-2022 走看看