您的位置:首页 > 其它

Linq基本子句介绍-语法之select

2012-02-18 19:12 267 查看
Linq表达式的查询结果,是通过select得到的。select可以 进行数据转化工作,得到你想要的数据结果。

一、创建控制台应用程序DemoSelect_1

View Code

class Program
{
static void Main(string[] args)
{
// 填充数据
List<PersonInfo> pList = new List<PersonInfo>()
{
new PersonInfo(){ Name="刘备", Country="蜀", Official="皇帝", Salary=10000},
new PersonInfo{ Name="关羽", Country="蜀", Official="上将", Salary=10000},
new PersonInfo{ Name="张飞", Country="蜀", Official="上将", Salary=10000},

new PersonInfo{ Name="曹操", Country="魏", Official="皇帝", Salary=10000},
new PersonInfo{ Name="典韦", Country="魏", Official="上将", Salary=8000},
new PersonInfo{ Name="许褚", Country="魏", Official="上将", Salary=8000},

new PersonInfo{ Name="孙权", Country="吴", Official="皇帝", Salary=10000},
new PersonInfo{ Name="周瑜", Country="吴", Official="都督", Salary=8000},
new PersonInfo{ Name="陆逊", Country="吴", Official="都督", Salary=8000}

};

// 简单select
Console.WriteLine("******************简单select******************");
var query = from v in pList
where v.Name == "刘备"
select v;

foreach (PersonInfo p in query)
{
Console.WriteLine(string.Format("姓名:{0}---国家:{1}---职位:{2}---薪水:{3}" , p.Name,p.Country,p.Official,p.Salary));
}

Console.ReadKey();

// 输出某个属性的select
Console.WriteLine("******************输出某个属性的select******************");
var query_1 = from v in pList
where v.Country == "蜀"
select v.Name;

foreach (string p in query_1)
{
Console.WriteLine(string.Format("姓名:{0}",p));
}
Console.ReadKey();

// 用自定义函数,替换属性值,然后输出的select
Console.WriteLine("******************替换属性值,然后输出的select******************");
var query_2 = from v in pList
where v.Official == "皇帝"
select new PersonInfo().ReplaceName(v.Name);

foreach (string p in query_2)
{
Console.WriteLine(string.Format("姓名:{0}", p));
}
Console.ReadKey();

// 转换为需要的类型
Console.WriteLine("******************替换属性值,然后输出的select******************");
var query_3 = from v in pList
select new ShortInfo(v.Name,v.Country);

foreach (ShortInfo p in query_3)
{
Console.WriteLine(string.Format("姓名:{0}---国家:{1}", p.Name,p.Country));
}
Console.ReadKey();

}
}


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: