实例一:条件查询
using System;
using System.Collections.Generic;
using System.Linq;
namespace myfirst
{
internal class Test
{
public static void Main()
{
//初始化武林高手
var master = new List<MartialArtsMaster>
{
new MartialArtsMaster {Id = 1, Name = "黄蓉", Age = 18, MenPai = "丐帮", Kongfu = "打狗棒法", Level = 9},
new MartialArtsMaster {Id = 2, Name = "洪七公", Age = 70, MenPai = "丐帮", Kongfu = "打狗棒法", Level = 10},
new MartialArtsMaster {Id = 3, Name = "郭靖", Age = 22, MenPai = "丐帮", Kongfu = "降龙十八掌", Level = 10},
new MartialArtsMaster {Id = 4, Name = "任我行", Age = 50, MenPai = "明教", Kongfu = "葵花宝典", Level = 1},
new MartialArtsMaster {Id = 5, Name = "东方不败", Age = 35, MenPai = "明教", Kongfu = "葵花宝典", Level = 10},
new MartialArtsMaster {Id = 6, Name = "林平之", Age = 23, MenPai = "华山", Kongfu = "葵花宝典", Level = 7},
new MartialArtsMaster {Id = 7, Name = "岳不群", Age = 50, MenPai = "华山", Kongfu = "葵花宝典", Level = 8},
new MartialArtsMaster {Id = 8, Name = "令狐冲", Age = 23, MenPai = "华山", Kongfu = "独孤九剑", Level = 10},
new MartialArtsMaster {Id = 9, Name = "梅超风", Age = 23, MenPai = "桃花岛", Kongfu = "九阴真经", Level = 8},
new MartialArtsMaster {Id = 10, Name = "黄药师", Age = 23, MenPai = "梅花岛", Kongfu = "弹指神通", Level = 10},
new MartialArtsMaster {Id = 11, Name = "风清扬", Age = 23, MenPai = "华山", Kongfu = "独孤九剑", Level = 10}
};
//初始化武学
var kongfu = 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}
};
//使用lingq做查询
var res = from m in master
//from后面设置查询的集合
where m.Level > 8 &&m.MenPai=="丐帮" //通过&&表达式来添加限制条件
//where后面跟上查询的条件
select m.Name; //表示把m的集合返回
foreach (var temp in res)
{
Console.WriteLine(temp);
}
}
}
}
实例二:做连接查询
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
namespace myfirst
{
internal class Test
{
public static void Main()
{
//初始化武林高手
var master = new List<MartialArtsMaster>
{
new MartialArtsMaster {Id = 1, Name = "黄蓉", Age = 18, MenPai = "丐帮", Kongfu = "打狗棒法", Level = 9},
new MartialArtsMaster {Id = 2, Name = "洪七公", Age = 70, MenPai = "丐帮", Kongfu = "打狗棒法", Level = 10},
new MartialArtsMaster {Id = 3, Name = "郭靖", Age = 22, MenPai = "丐帮", Kongfu = "降龙十八掌", Level = 10},
new MartialArtsMaster {Id = 4, Name = "任我行", Age = 50, MenPai = "明教", Kongfu = "葵花宝典", Level = 1},
new MartialArtsMaster {Id = 5, Name = "东方不败", Age = 35, MenPai = "明教", Kongfu = "葵花宝典", Level = 10},
new MartialArtsMaster {Id = 6, Name = "林平之", Age = 23, MenPai = "华山", Kongfu = "葵花宝典", Level = 7},
new MartialArtsMaster {Id = 7, Name = "岳不群", Age = 50, MenPai = "华山", Kongfu = "葵花宝典", Level = 8},
new MartialArtsMaster {Id = 8, Name = "令狐冲", Age = 23, MenPai = "华山", Kongfu = "独孤九剑", Level = 10},
new MartialArtsMaster {Id = 9, Name = "梅超风", Age = 23, MenPai = "桃花岛", Kongfu = "九阴真经", Level = 8},
new MartialArtsMaster {Id = 10, Name = "黄药师", Age = 23, MenPai = "梅花岛", Kongfu = "弹指神通", Level = 10},
new MartialArtsMaster {Id = 11, Name = "风清扬", Age = 23, MenPai = "华山", Kongfu = "独孤九剑", Level = 10}
};
//初始化武学
var kongfu = 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}
};
//使用lingq做查询
var res = from m in master
join k in kongfu on m.Kongfu equals k.Name //做连接查询(按照武术的名字做连接)
where k.Power>90 //在连接的基础上分离出power大于90的
select new {master = m, kongfu2 = k};
foreach (var temp in res)
{
Console.WriteLine(temp);
}
}
}
}
实例三:做分组操作
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
namespace myfirst
{
internal class Test
{
public static void Main()
{
//初始化武林高手
var master = new List<MartialArtsMaster>
{
new MartialArtsMaster {Id = 1, Name = "黄蓉", Age = 18, MenPai = "丐帮", Kongfu = "打狗棒法", Level = 9},
new MartialArtsMaster {Id = 2, Name = "洪七公", Age = 70, MenPai = "丐帮", Kongfu = "打狗棒法", Level = 10},
new MartialArtsMaster {Id = 3, Name = "郭靖", Age = 22, MenPai = "丐帮", Kongfu = "降龙十八掌", Level = 10},
new MartialArtsMaster {Id = 4, Name = "任我行", Age = 50, MenPai = "明教", Kongfu = "葵花宝典", Level = 1},
new MartialArtsMaster {Id = 5, Name = "东方不败", Age = 35, MenPai = "明教", Kongfu = "葵花宝典", Level = 10},
new MartialArtsMaster {Id = 6, Name = "林平之", Age = 23, MenPai = "华山", Kongfu = "葵花宝典", Level = 7},
new MartialArtsMaster {Id = 7, Name = "岳不群", Age = 50, MenPai = "华山", Kongfu = "葵花宝典", Level = 8},
new MartialArtsMaster {Id = 8, Name = "令狐冲", Age = 23, MenPai = "华山", Kongfu = "独孤九剑", Level = 10},
new MartialArtsMaster {Id = 9, Name = "梅超风", Age = 23, MenPai = "桃花岛", Kongfu = "九阴真经", Level = 8},
new MartialArtsMaster {Id = 10, Name = "黄药师", Age = 23, MenPai = "梅花岛", Kongfu = "弹指神通", Level = 10},
new MartialArtsMaster {Id = 11, Name = "风清扬", Age = 23, MenPai = "华山", Kongfu = "独孤九剑", Level = 10}
};
//初始化武学
var kongfu = 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}
};
//使用lingq做查询
var res = from m in master
join k in kongfu on m.Kongfu equals k.Name //将两个表进行连接
group k by k.Name into g //通过功夫的名字进行分组 等价于:(into g)
select new {m=g.Key, k=g.Count()};
foreach (var temp in res)
{
Console.WriteLine(temp);
}
}
}
}
LINQ表达式实例复习
最新推荐文章于 2023-08-31 20:14:03 发布