LINQ用法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _013_LINQ {
class Kongfu {
public int Id { get; set; }
public string Name { get; set; }
public int Power { get; set; }
public override string ToString()
{
return string.Format("Id: {0}, Name: {1}, Power: {2}", Id, Name, Power);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _013_LINQ {
class MartialArtsMaster {
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Menpai { get; set; }
public string Kongfu { get; set; }
public int Level { get; set; }
public override string ToString()
{
return string.Format("Id: {0}, Name: {1}, Age: {2}, Menpai: {3}, Kongfu: {4}, Level: {5}", Id, Name, Age, Menpai, Kongfu, Level);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace _013_LINQ
{
internal class Program
{
private static void Main(string[] args)
{
//初始化武林高手
var masterList = new List<MartialArtsMaster>()
{
new MartialArtsMaster() {Id = 1, Name = "黄蓉", Age = 18, Menpai = "丐帮", Kongfu = "打狗棒法", Level = 9},
new MartialArtsMaster() {Id = 4, Name = "任我行", Age = 50, Menpai = "明教", Kongfu = "葵花宝典", Level = 1},
new MartialArtsMaster() {Id = 6, Name = "林平之", Age = 23, Menpai = "华山", Kongfu = "葵花宝典", Level = 7},
new MartialArtsMaster() {Id = 10, Name = "黄药师", Age = 23, Menpai = "梅花岛", Kongfu = "弹指神通", Level = 10},
};
//初始化武学
var kongfuList = new List<Kongfu>()
{
new Kongfu() {Id = 1, Name = "打狗棒法", Power = 90},
new Kongfu() {Id = 2, Name = "降龙十八掌", Power = 95},
new Kongfu() {Id = 3, Name = "葵花宝典", Power = 100},
new Kongfu() {Id = 4, Name = "独孤九剑", Power = 100},
new Kongfu() {Id = 5, Name = "九阴真经", Power = 100},
new Kongfu() {Id = 6, Name = "弹指神通", Power = 100}
};
//查询所有武学级别大于8的武林高手
var res = new List<MartialArtsMaster>();
foreach (var temp in masterList)
{
if (temp.Level > 8)
{
res.Add(temp);
}
}
//1,使用LINQ做查询( 表达式写法)
//从masterList查询,每个取名为m
var res1 = from m in masterList
//where后面跟上查询的条件
where m.Level > 8 && m.Menpai == "丐帮"
select m;//表示m的结果集合返回
foreach (var temp in res1)
{
Console.WriteLine(temp);
}
Console.WriteLine();
//2.1扩展方法的写法--匿名函数
//参数是Func委托,返回值是bool类型--用来过滤
var res2 = masterList.Where(Test1);
foreach (var temp in res2)
{
Console.WriteLine(temp);
}
Console.WriteLine();
//2.2扩展方法的写法--lanbda表达式
var res3 = masterList.Where