LINQ & Generic Basic

The Quick sample to show the basic LINQ. easier to operate an Array

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

public class Class1
{

    public static void Main()
    {
        //Original Array
        int[] values = { 2, 5, 7, 3, 9, 8, 4, 6 };
        Display(values, "Original array");

        // Filtered Array
        var filtered = from v in values
                       where v > 5
                       select v;
        Display(filtered,"The Element great than 5");

        //Sorted Array(ASC)
        var sorted = from v in values
                     orderby v
                     select v;
        Display(sorted,"The Sorted array is:");

        //Sorted Array(DESC)
        var DESCSorted = from v in values
                         orderby v descending
                         select v;
        Display(DESCSorted,"The DESC Sorted array is:");



    }

    public static void Display(IEnumerable<int> results, string header)
    {
        Console.WriteLine(header);
        foreach (var r in results)
        {
            Console.Write("{0},",r);      
        }
        Console.WriteLine();
        Console.WriteLine("********************");
    }
}
Output Result:



Display方法使用了 IEnumerable<T> 作爲參數, 因爲數組經過LInq處理以後 就不再是Array了,變成了一個集合(如: filtered,sorted。。)

但是 因爲Array 和 各種集合(Collection) 都實現了 IEnumerable<T>的接口,例如List, ArrayList。。。

Foreach用於對集合中的所有元素進行迭代

************************************************************************************************************************************************************************************

LINQ 進行查詢的基礎: 變換大小寫 消除重複 排序 開始字母。。。。。

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

public class Class1
{
    public static void Main()
    {
        Console.WriteLine("Please input a sentence:");
        string sentence = Console.ReadLine().ToString();

        List<string> _listItems = new List<string> { };

        string[] items = sentence.Split(' '); // only can split the char type, can not be string type
        foreach (var i in items)
        {
            _listItems.Add(i);
        }

        Display(_listItems);

        // Convert all string to upper word & get the start with I
        var operatered = from i in _listItems
                         let upperstring = i.ToUpper()
                         where upperstring.StartsWith("I")
                         orderby upperstring
                         select upperstring;
        Display(operatered);

        //Convert the string to Lower & remove repeated words
        var operatered1 = (from i in _listItems
                          let lowerstring = i.ToLower()
                          orderby lowerstring
                           select lowerstring).Distinct();

        Display(operatered1);
    }

    public static void Display(IEnumerable<string> items)
    {
        Console.WriteLine();
        foreach (var i in items)
        {
            Console.Write("{0} ", i);
        }
    }
}
Output:

***************************************************************************************************************************************************************************************


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章