zoukankan      html  css  js  c++  java
  • C#细节之lambda,linq,匿名方法

    看代码,得永生
    不再解释,很容易的,我没有仔细研究过,在此记下,以后深入研究。
    using System;
    using System.Collections.Generic;
    using System.Collections;
    using System.Linq;
    using System.Text;

    namespace Landpy
    {
        
    class Starter
        {
            
    delegate int Add(int i, int j);
            
    delegate bool Compare(int i, int j);
            
    delegate void NoNameMethod(string name);
            
    static void Main()
            {
                Add add 
    = (x, y) => x + y;
                Console.WriteLine(add.Invoke(
    12));
                Compare compare 
    = (i, j) => i == j;
                Console.WriteLine(compare.Invoke(
    12));
                Console.WriteLine(compare.Invoke(
    11));
                NoNameMethod noNameMethod 
    =
                    
    delegate(string name)
                    {
                        Console.WriteLine(String.Format(
    "Hello {0}!", name));
                    };
                Action
    <int> hello = delegate(int i)
                {
                    
    for (int j = 0; j < i; j++)
                    {
                        Console.WriteLine(
    "Hello");
                    }
                };
                noNameMethod.Invoke(
    "Landpy");
                hello.Invoke(
    3);

                
    string[] names = { "++landpy""pxl""ljc""baby" };
                
    //lambda的写法 
                var quereynamestwo = names.Where(n => n.Length == 3).Select(n => n.Substring(2));//.Select(n => n.Name);

                
    //linq的写法 
                var quereynames = from n in names
                                  
    where n.Length == 3
                                  select n;

                
    foreach (string name in quereynames)
                {
                    Console.WriteLine(name);
                }

                
    foreach (string name in quereynamestwo)
                {
                    Console.WriteLine(name);
                }

                ArrayList employees 
    = new ArrayList();

                
    for (int i = 0; i < 10; i++)
                {
                    Employee employee 
    = new Employee();
                    employee.Name 
    = "Name" + i.ToString();
                    employee.Age 
    = i;
                    employees.Add(employee);
                }

                Employee[] employeesArray 
    = (Employee[])employees.ToArray(typeof(Employee));

                var es 
    = employeesArray.Where(n => n.Age > 4);
                
    foreach (Employee employeeTmp in es)
                {
                    Console.WriteLine(employeeTmp.Name);
                }
            }
        }

        
    class Employee
        {
            
    public string Name
            {
                
    get;
                
    set;
            }

            
    public int Age
            {
                
    get;
                
    set;
            }
        }
    }
    敬告

    作者:pangxiaoliang
    出处:http://www.cnblogs.com/pangxiaoliang
    本文版权归pangxiaoliang和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,谢谢合作。
  • 相关阅读:
    iphone dev 入门实例5:Get the User Location & Address in iPhone App
    iphone dev 入门实例4:CoreData入门
    iphone dev 入门实例3:Delete a Row from UITableView
    iphone dev 入门实例2:Pass Data Between View Controllers using segue
    iphone dev 入门实例1:Use Storyboards to Build Table View
    Learning Core Data 1
    Apple dev travel
    数字信封工作原理
    Linux编程概念
    ubuntu16.04 安装 libnfc
  • 原文地址:https://www.cnblogs.com/pangxiaoliang/p/1530654.html
Copyright © 2011-2022 走看看