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:
***************************************************************************************************************************************************************************************