using System;
using System.Collections.Generic;
using System.Linq;
namespace 认识LINQ
{
class Program
{
static void Main(string[] args)
{
int[] arry = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] arry2 = new int[] { 100 };
var query1 = from n in arry select n;
foreach (var item in query1)
{
Console.WriteLine(item);
}
Console.WriteLine("--------------------------------------");
var query2 = from n in arry where n >= 5 select n;
foreach (var item in query2)
{
Console.WriteLine(item);
}
Console.WriteLine("--------------------------------------");
var query3 = from n in arry where n >= 5 orderby n descending select n;
foreach (var item in query3)
{
Console.WriteLine(item);
}
var query4 = from a in arry from b in arry2 select (a + b) * 10;
Console.WriteLine("--------------------------------------");
foreach (var item in query4)
{
Console.WriteLine(item);
}
var query5 = from a in arry where a >= 3 select new { number = a * 10 };
Console.WriteLine("--------------------------------------");
foreach (var item in query5)
{
Console.WriteLine(item);
}
var query6 = from num in arry where num % 2 != 0 select num;
Console.WriteLine("--------------------------------------");
foreach (var item in query6)
{
Console.WriteLine(item);
}
var query7 = from num in arry let n = num % 2 where n == 0 select num;
Console.WriteLine("--------------------------------------");
foreach (var item in query7)
{
Console.WriteLine(item);
}
Console.WriteLine("--------------------------------------");
var query8 = (from num in arry where num >= 5 select num).Min();
Console.WriteLine(query8);
List<string> list = new List<string>();
list.Add("aa");
list.Add("bb");
list.Add("cc");
var str = string.Join(":", list);
Console.WriteLine(str);
Console.WriteLine("********************************");
var testList = new List<int>() { 1, 2, 3, 4, 5, 6 };
var testResult = testList.LsWhere(x => x > 3);
foreach (var item in testResult)
{
Console.WriteLine(item);
}
var t = from n in testList select n;
Console.WriteLine("-----------------------Join--------------------------");
Person[] persons = new Person[]
{
new Person{ CityId = 1, Name = "廖xx" },
new Person{ CityId = 1, Name = "李漂亮"},
new Person{ CityId = 2, Name = "张美美"},
new Person{ CityId = 3, Name = "李思思"},
new Person{ CityId = 3, Name = "东施"},
new Person{ CityId = 4, Name = "西施"},
};
City[] cities = new City[]
{
new City{ Id = 1,Name = "ChongQing"},
new City{ Id = 2,Name = "Shenzhen"},
new City{ Id = 3,Name = "Beijing"},
new City{ Id = 4,Name = "Shanghai"}
};
var result = persons.Join(cities, c => c.CityId, p => p.Id, (c, p) => new { PersonName = p.Name, CityName = c.Name }).ToList();
foreach (var item in result)
{
Console.WriteLine($"{item.CityName}--{item.PersonName}");
//Console.WriteLine(item.Key);
}
var group = from n in testList group n by n % 2 into res from n2 in res select n2;
foreach (var i in group)
{
Console.WriteLine(i);
}
Console.WriteLine("----------------------------------------");
var arr1 = new int[] { 1, 2, 3, 4, 5, 6 };
var arr2 = new int[] { 1, 2, 3, 4, 5 };
var re = from n1 in arr1 join n2 in arr2 on n1 equals n2 into o from n3 in o orderby n3 descending select n3;
var r = arr1.Join(arr2, x => x, y => y, (x, y) => x).OrderByDescending(x => x).ToList();
foreach (var item in r)
{
Console.WriteLine(item);
}
Console.WriteLine("----------------------------------------");
var testResult2 = testList.LsWhere2(x => x >= 5);
foreach (var item in testResult2)
{
Console.WriteLine(item);
}
Console.WriteLine("----------------------------------------");
Console.WriteLine(testList.TrueForAll(x => x >= 1));
Console.WriteLine("----------------------------------------");
Console.WriteLine(testList.Sum(x => x));
Console.WriteLine("----------------------------------------");
foreach (var item in testList.GetRange(0, 3))
{
Console.WriteLine(item);
}
}
}
class Person
{
public int CityId { set; get; }
public string Name { set; get; }
}
class City
{
public int Id { set; get; }
public string Name { set; get; }
}
}