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);
                }

     
     
  • 相关阅读:
    Django内置的响应类
    Django的路由规则
    Django中的中间件
    celery_2:异步任务简单使用
    celery_1:简介及定时任务简单使用
    mac系统 redis安装及常用命令
    redis连接:Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
    千分位函数percentile()和percentile_approx()
    模型评估_1—回归模型:mse、rmse、mae、r2
    Spark_4_2:Spark函数之collect、toArray和collectAsMap
  • 原文地址:https://www.cnblogs.com/dzh1990/p/7551798.html
Copyright © 2011-2022 走看看