zoukankan      html  css  js  c++  java
  • c# LINQ

    可以对所有实现了IEnumerable<T>接口的对象执行标准的LINQ查询

    <3>泛型约束

            很多时候我们不希望使用者太过自由

            我们希望他们在使用我们设计的泛型类型时

            不要很随意的传入任何类型

            对于泛型类型的设计者来说,要求使用者传入指定的类型是很有必要的

            因为我们只有知道他传入了什么东西,才方便对这个东西做操作

            让我们来给上面设计的泛型类型加一个泛型约束

            代码如下:        

              public static class SomethingFactory<T> where T:MyObj

            这样在使用SomethingFactory的时候就只能传入MyObj类型或MyObj的派生类型啦

            注意:

              还可以写成这样

              where T:MyObj,new()

              来约束传入的类型必须有一个构造函数。        

        (3)泛型的好处

          <1>算法的重用

            想想看:list类型的排序算法,对所有类型的list集合都是有用的

          <2>类型安全

          <3>提升性能

            没有类型转化了,一方面保证类型安全,另一方面保证性能提升

          <4>可读性更好

            这一点就不解释了 

       
                //linq语句必须是以from开头,以select 或者 group结尾巴  
                var query = from r in lists where r.age >= 20 && r.age <= 30 select r;   
       
                foreach( Person per in query )   
                {   
                    Console.WriteLine( per.name +  "  " + per.age ) ;   
                }   
     

          var results = from w in words

          where w.Contains(“z”)

          select w;

    LINQ 和 Lambda 等价

      int[] scores = { 10, 90, 100, 30, 70, 29, 45 };
                var result = from i in scores//LINQ表达式
                    where i>10
                    select i;
                foreach (var e in result)
                {
                    Debug.WriteLine(e);
                }
                var result1 = scores.Select(e => e).Where(o=>o>10);//Lambda表达式
                Debug.WriteLine("==================================================================");
                foreach (var e in result1)
                {
                    Debug.WriteLine(e);
                }

     
     
  • 相关阅读:
    maven学习讲解
    《Struts2.x权威指南》学习笔记2
    《Struts2.x权威指南》学习笔记1
    【转】Maven3把命令行创建的web工程转成Eclipse和IntelliJ Idea的工程
    [转]h5页面测试总结
    《零成本实现Web性能测试:基于Apache JMeter》读书笔记
    《软件性能测试过程详解与案例剖析》读书笔记
    手机屏幕尺寸测试——手机的实际显示页面的宽度
    web常识
    vue 生命周期
  • 原文地址:https://www.cnblogs.com/dzh1990/p/7551798.html
Copyright © 2011-2022 走看看