linq学习笔记(一)

本例演示了如何从一个int数组中找出偶数,并将结果从大小到排序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LinqDemo
{

    
class Program
    
{
        
static int[] numbers = 134567891020191817161514131211 };

        
static void Main(string[] args)
        
{
            Traditonal();
            Console.WriteLine(
"----------------------");
            LinqMethod();
            Console.ReadLine();

           

        }



        
/// <summary>
        
/// 传统写法
        
/// </summary>

        static void Traditonal() 
        
{
            
            List
<int> SelectedNumbers = new List<int>();
            
foreach (int i in numbers)
            
{
                
if (i % 2==0)
                
{
                    SelectedNumbers.Add(i);                    

                }
               
            }
           
            
            SelectedNumbers.Sort(SortDesc); 
//.net1.0写法           
            for (int i = 0; i < SelectedNumbers.Count; i++)
            
{
                Console.WriteLine(SelectedNumbers[i]);
            }

            
        }



        
/// <summary>
        
/// 逆顺排序(配合传统写法)
        
/// </summary>
        
/// <param name="x"></param>
        
/// <param name="y"></param>
        
/// <returns>1(x大于y),0(x等于y),-1(x小于y)</returns>

        static int SortDesc(int x,int y) 
        
{
            
//if (x < y) 
            
//{
            
//    return 1;
            
//}
            
//else if (x == y)
            
//{
            
//    return 0;
            
//}
            
//else 
            
//{
            
//    return -1;
            
//}//也可以简写为下面的一行
            return y - x;

        }


        
/// <summary>
        
/// Linq的写法
        
/// </summary>

        static void LinqMethod() 
        
{
            
            var SelectedNumbers 
= from number in numbers where (number % 2 == 0) orderby number descending select number;
            
foreach (var i in SelectedNumbers)
            
{
                Console.WriteLine(i);
            }
           

        }



       
    }

}

可以看出用Linq写法,代码更简洁
posted @ 2008-02-02 23:11  菩提树下的杨过  阅读(285)  评论(0编辑  收藏  举报