C# LINQ
LINQ(Language Integrated Query,语言集成查询)。在C# 语言中集成了查询语法,可以用相同的语法访问不同的数据源。
命名空间System.Linq
下的类Enumerate
中定义了许多LINQ扩展方法,用于可以在实现了IEnumerable<T>
接口的任意集合上使用LINQ查询。
扩展方法
C#扩展方法在静态类中声明,定义为一个静态方法,其中第一个参数定义了它扩展的类型,扩展方法必须对第一个参数使用this
关键字。
public static class StringExtension { public static void WriteLine(this string str) { Console.WriteLine(str); } }
调用方式有两种:
//方式一
"测试".WriteLine(); //方式二 StringExtension.WriteLine("测试二");
采用方式一的方式调用,需要导入该扩展方法所在类的命名空间即可。在使用LINQ时,需要导入System.Linq
命名空间。
示例实体定义
为了更好的说明LINQ的使用, 我们将使用具体的示例进行说明,在该示例中,分别定义如下几个实体:
Racer.cs:该类用来显示赛车手信息
public class Racer : IComparable<Racer>, IFormattable { public string FirstName { get; set; } public string LastName { get; set; } public int Wins { get; set; } public string Country { get; set; } public int Starts { get; set; } public IEnumerable<string> Cars { get; } public IEnumerable<int> Years { get; } public Racer(string firstName, string lastName, string country, int starts, int wins, IEnumerable<int> years, IEnumerable<string> cars) { this.FirstName = firstName; this.LastName = lastName; this.Country = country; this.Starts = starts; this.Wins = wins; this.Years = years != null ? new List<int>(years) : new List<int>(); this.Cars = cars != null ? new List<string>