• 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);
    
    
  • 相关阅读:
    SSLOJ 1298.网站计划
    SSLOJ 1297.GF打Dota
    SSLOJ 1296.猫咪的进化
    脚本1)启动jetty的脚本
    mysql的常用命令
    mysql异常com.mysql.jdbc.PacketTooBigException
    debian apt-get联网安装mysql服务
    mysql 解决Warning: World-writable config file ‘/etc/my.cnf’ is ignored
    ubuntu/debian/linux彻底卸载mysql
    Ubuntu12.04_X64 apt-get install 报错404
  • 原文地址:https://www.cnblogs.com/lanpingwang/p/6608118.html
Copyright © 2020-2023  润新知