class Customer
{
public string ID { get; set; }
public string City { get; set; }
public string Country { get; set; }
public string Region { get; set; }
public decimal Sales { get; set; }
public override string ToString()
{
return "ID:" + ID + "City:" + City + "Country:" + Country +
"Region:" + Region + "Sales:" + Sales;
}
}
class Program
{static void Main(string[] args)
{
List<Customer> customers = new List<Customer>{
new Customer{ID = "A",City = "New York", Country = "USA",
Region = "North American", Sales = 999},
new Customer{ID = "B",City = "Mumbai", Country = "India",
Region = "Asia", Sales = 888},
new Customer{ID = "C",City = "Karachi", Country = "Pakistan",
Region = "Asia", Sales = 777},
new Customer{ID = "D",City = "Delhi", Country = "India",
Region = "Asia", Sales = 666},
new Customer{ID = "E",City = "So Paul", Country = "Brazil",
Region = "South America", Sales = 555},
new Customer{ID = "F",City = "Moscow", Country = "Russia",
Region = "Europe", Sales = 444},
new Customer{ID = "G",City = "Seoul", Country = "Korea",
Region = "Asia", Sales = 333},
new Customer{ID = "H",City = "Istanbul", Country = "Turkey",
Region = "Asia", Sales = 222},
new Customer{ID = "I",City = "Shanghai", Country = "China",
Region = "Asia", Sales = 1111},
new Customer{ID = "J",City = "Lagos", Country = "Nigeria",
Region = "Africa", Sales = 1000}};
var queryResults = customers.Where(c => c.Region == "Asia").Select(c => new { c.City, c.Country, c.Sales });//投射:方法语法
// var queryResults = customers.Select(c => c.Region).Distinct(); //找出Region不重复的元素
/*投射:查询语法
var queryResults =
from c in customers
where c.Region == "Asia"
select new { c.City,c.Region};*/
Console.WriteLine("Customers in Asia:");
foreach (var c in queryResults)
{
Console.WriteLine(c);
}
/* //Any 与All的用法
bool anyUSA = customers.Any(c => c.Country == "USA");
if (anyUSA)
{
Console.WriteLine("Some customers are in the USA");
}
else
{
Console.WriteLine("No customers are in the USA");
}
bool allAsia = customers.All(c => c.Region == "Asia");
if (allAsia)
{
Console.WriteLine("All customers are in the Asia");
}
else
{
Console.WriteLine("Not All customers are in the Asia");
}
//多级排序 查询语法--------------------------beging-----------------------------------------------------------
var queryResults =
from c in customers
orderby c.Region, c.Country descending, c.City
select new { c.ID, c.Region, c.Country, c.City };
//多级排序 查询语法--------------------------end-----------------------------------------------------------
//多级排序 方法语法--------------------------beging-----------------------------------------------------------
var queryResult = customers.OrderBy(c=>c.Region)
.ThenBy(c=>c.Country)
.ThenBy(c=>c.City)
.Select(c=>new {c.ID,c.Region,c.Country,c.City})
//多级排序 方法语法--------------------------end-----------------------------------------------------------
//组合查询 查询语法--------------------------beging-----------------------------------------------------------
var queryResult =
from c in customers
group c by c.Region into cg
select new {TotalSales = cg.Sum(c=>c.Sales), Region = cg.Key};
var ovderResult =
from a in queryResult
orderby a.TotalSales descending
select a;
foreach (var item in ovderResult)
{
Console.WriteLine(item);
}
Console.ReadKey();
//组合查询 查询语法--------------------------end-----------------------------------------------------------
//Take Skip 查询语法--------------------------beging-----------------------------------------------------------
var queryResults =
from c in customers
orderby c.Sales descending
select new { c.ID, c.City, c.Country, c.Sales };
foreach (var item in queryResults.Take(5))//只查找结果集前五条记录
{
Console.WriteLine(item);
}
foreach (var item in queryResults.Skip(5))//查找除了前5条记录余下所有的结果
{
Console.WriteLine(item);
}
//Take Skip 查询语法--------------------------end-----------------------------------------------------------
//First与 FirstOrDefault 查询语法--------------------------beging-----------------------------------------------------------
var querResults = from c in customers
select new {c.City, c.Country,c.Region};
//从结果集中返回第一条与条件匹配的元素 如果没有则抛出异常
Console.WriteLine(queryResults.First(c=>c.Region == "Africa"));
//从结果集中返回第一条与条件匹配的元素 如果没有则输出空白
Console.WriteLine(queryResults.FirstOrDefault(c=>c.Region == "Africa")); */
//First与 FirstOrDefault 查询语法--------------------------end-----------------------------------------------------------
}
}