📅  最后修改于: 2020-11-01 03:02:33             🧑  作者: Mango
C#查询表达式是使用LINQ查询语法编写的表达式。 LINQ(语言集成查询)是用于构造查询的语言。
C#查询表达式包含子句集,并使用类似于SQL的查询表达式。
查询表达式必须以from子句开头,并以select或group子句结尾。
要存储查询,我们必须使用IEnumerable类型变量。它提供了IEnumerator.MoveNext方法来迭代元素。
我们可以通过两种方式从IEnumerable序列中迭代元素。
注意:我们必须使用System.Linq命名空间来执行查询表达式。
我们来看一个使用表达式查询显示数组中奇数的示例。
using System;
using System.Linq;
using System.Collections.Generic;
namespace CSharpFeatures
{
class DelegateInference
{
static void Main(string[] args)
{
int[] IntVal = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Query Expression
IEnumerable OddVal =
from val in IntVal
where (val % 2) != 0
select val;
// Iterating fetched result
foreach (int val in OddVal)
{
Console.WriteLine(val);
}
}
}
}
输出量
1
3
5
7
9
在此示例中,我们使用查询表达式从学生集合中获取学生姓名。
using System;
using System.Linq;
using System.Collections.Generic;
namespace CSharpFeatures
{
class Student
{
public int ID { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public static List GetStudents()
{
List student = new List();
Student student1 = new Student { ID = 101, Name = "Irfan", Email = "irfan@gmail.com"};
Student student2 = new Student { ID = 102, Name = "Rahul", Email = "rahul@abc.com" };
Student student3 = new Student { ID = 103, Name = "John", Email = "john@abc.com" };
student.Add(student1);
student.Add(student2);
student.Add(student3);
return student;
}
}
class QueryExpressionExample
{
static void Main(string[] args)
{
IEnumerable queryName =
from student in Student.GetStudents()
where student.ID == 103
select student.Name;
foreach (var s in queryName)
Console.Write(s);
}
}
}
它显示一个学生,学生号为103。
输出量
John