zoukankan      html  css  js  c++  java
  • LINQ 学习路程 -- 查询操作 Conversion Operators

    MethodDescription
    AsEnumerable Returns the input sequence as IEnumerable<t>
    AsQueryable Converts IEnumerable to IQueryable, to simulate a remote query provider
    Cast Coverts a non-generic collection to a generic collection (IEnumerable to IEnumerable<T>)
    OfType Filters a collection based on a specified type
    ToArray Converts a collection to an array
    ToDictionary Puts elements into a Dictionary based on key selector function
    ToList Converts collection to List
    ToLookup Groups elements into an Lookup<TKey,TElement>
    class Program
    {
    
        static void ReportTypeProperties<T>(T obj)
        {
            Console.WriteLine("Compile-time type: {0}", typeof(T).Name);
            Console.WriteLine("Actual type: {0}", obj.GetType().Name);
        }
    
        static void Main(string[] args)
        {
            Student[] studentArray = { 
                    new Student() { StudentID = 1, StudentName = "John", Age = 18 } ,
                    new Student() { StudentID = 2, StudentName = "Steve",  Age = 21 } ,
                    new Student() { StudentID = 3, StudentName = "Bill",  Age = 25 } ,
                    new Student() { StudentID = 4, StudentName = "Ram" , Age = 20 } ,
                    new Student() { StudentID = 5, StudentName = "Ron" , Age = 31 } ,
                };   
                
            ReportTypeProperties( studentArray);
            ReportTypeProperties(studentArray.AsEnumerable());
            ReportTypeProperties(studentArray.AsQueryable());   
        }
    }    




    Cast
    class Program
    {
    
        static void ReportTypeProperties<T>(T obj)
        {
            Console.WriteLine("Compile-time type: {0}", typeof(T).Name);
            Console.WriteLine("Actual type: {0}", obj.GetType().Name);
        }
    
        static void Main(string[] args)
        {
            Student[] studentArray = { 
                    new Student() { StudentID = 1, StudentName = "John", Age = 18 } ,
                    new Student() { StudentID = 2, StudentName = "Steve",  Age = 21 } ,
                    new Student() { StudentID = 3, StudentName = "Bill",  Age = 25 } ,
                    new Student() { StudentID = 4, StudentName = "Ram" , Age = 20 } ,
                    new Student() { StudentID = 5, StudentName = "Ron" , Age = 31 } ,
                };   
             
            ReportTypeProperties( studentArray);
            ReportTypeProperties(studentArray.Cast<Student>());
        }
    }      
     
    IList<string> strList = new List<string>() { 
                                                "One", 
                                                "Two", 
                                                "Three", 
                                                "Four", 
                                                "Three" 
                                                };
    
    string[] strArray = strList.ToArray<string>();// converts List to Array
    
    IList<string> list = strArray.ToList<string>(); // converts array into list










    IList<Student> studentList = new List<Student>() { 
                        new Student() { StudentID = 1, StudentName = "John", age = 18 } ,
                        new Student() { StudentID = 2, StudentName = "Steve",  age = 21 } ,
                        new Student() { StudentID = 3, StudentName = "Bill",  age = 18 } ,
                        new Student() { StudentID = 4, StudentName = "Ram" , age = 20 } ,
                        new Student() { StudentID = 5, StudentName = "Ron" , age = 21 } 
                    };
    
    //following converts list into dictionary where StudentId is a key
    IDictionary<int, Student> studentDict = 
                                    studentList.ToDictionary<Student, int>(s => s.StudentID); 
    
    foreach(var key in studentDict.Keys)
    	Console.WriteLine("Key: {0}, Value: {1}", 
                                    key, (studentDict[key] as Student).StudentName);
    
    
  • 相关阅读:
    应用服务器和Web服务器
    阿里巴巴开源技术 WebX
    Sublime搭建Python开发环境
    点我吧工作总结(技术篇) Velocity
    mysql分页查询详解
    说说Java的内存
    点我吧工作总结(技术篇) zookeeper
    高性能的分布式服务框架 Dubbo
    点我吧工作总结(技术篇) Cobar原理和环境搭建
    免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动。
  • 原文地址:https://www.cnblogs.com/lanpingwang/p/6608118.html
Copyright © 2011-2022 走看看