下面我来为你详细讲解“linq语法基础使用示例”的完整攻略。
什么是LINQ
LINQ全称为Language-Integrated Query,是.NET Framework 3.5引入的一种新的数据访问技术。它的设计初衷是为了简化与数据相关的编程工作,通过将查询语言集成到.NET语言中,开发人员可以使用C#或VB.NET等语言像编写SQL语句一样来对数据进行查询。
LINQ语法基础使用示例
下面通过两个示例来展示LINQ语法的基础使用。
示例一:从集合中筛选数据
假设有一个Person类,包含姓名(Name)、年龄(Age)和性别(Sex)等属性,如下:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Sex { get; set; }
}
接下来,创建一个Person集合:
List<Person> personList = new List<Person>()
{
new Person(){ Name = "张三", Age = 22, Sex="男"},
new Person(){ Name = "李四", Age = 28, Sex="男"},
new Person(){ Name = "王五", Age = 30, Sex="男"},
new Person(){ Name = "赵六", Age = 25, Sex="女"},
new Person(){ Name = "钱七", Age = 21, Sex="女"},
};
现在假设需要从这个集合中筛选出年龄大于等于25岁的男性,代码如下:
var queryResult = from p in personList
where p.Age >= 25 && p.Sex == "男"
select p;
上面的代码使用了LINQ语句,其中from
关键字指定了要查询的集合,where
关键字指定了查询条件,select
关键字指定了查询结果。最后使用var
关键字来定义一个变量queryResult
来存储查询结果。需要注意的是,这里使用的是C#的查询表达式语法,其实还有更加灵活的Lambda表达式语法,读者可以自行了解。
最后,可以使用foreach
语句来遍历查询结果,输出每个符合条件的Person对象的属性值:
foreach (var p in queryResult)
{
Console.WriteLine("姓名:{0},年龄:{1},性别:{2}", p.Name, p.Age, p.Sex);
}
示例二:从XML文件中查询数据
假设有一个XML文件,里面包含多条Person记录,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<Persons>
<Person Name="张三" Age="22" Sex="男" />
<Person Name="李四" Age="28" Sex="男" />
<Person Name="王五" Age="30" Sex="男" />
<Person Name="赵六" Age="25" Sex="女" />
<Person Name="钱七" Age="21" Sex="女" />
</Persons>
接下来,通过LINQ语句来查询年龄大于等于25岁的Person记录,代码如下:
XDocument doc = XDocument.Load("persons.xml");
var queryResult = from p in doc.Descendants("Person")
where Convert.ToInt32(p.Attribute("Age").Value) >= 25
select new Person()
{
Name = p.Attribute("Name").Value,
Age = Convert.ToInt32(p.Attribute("Age").Value),
Sex = p.Attribute("Sex").Value
};
上面的代码首先使用XDocument.Load
方法来加载XML文件,然后使用Descendants
方法从XML文档中获取所有"Person"节点,接下来使用where
关键字指定查询条件(即年龄大于等于25岁),最后使用select
关键字来将每个符合条件的Person节点转换成一个Person对象,并返回查询结果。
最后同样可以使用foreach
语句来遍历查询结果,输出每个符合条件的Person对象的属性值,代码如下:
foreach (var p in queryResult)
{
Console.WriteLine("姓名:{0},年龄:{1},性别:{2}", p.Name, p.Age, p.Sex);
}
总结
通过上面两个示例中的介绍,我们可以初步了解LINQ语法的基础使用。当然,这只是LINQ语法的冰山一角,还有很多高级特性,读者可以自行了解探究。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linq语法基础使用示例 - Python技术站