XX有很多值得学习的地方,这里我们主要介绍Linq扩展函数,包括介绍Linq扩展函数Enumerable获取Counts等方面。
本文首先介绍Linq扩展函数(泛型函数)的方式提供的函数:
◆用不同方式产生结果集: Reverse<>(), ToArray<>(), ToList<>()
◆集合操作: Distinct<>(), Union<>(), Intersect<>()
◆统计函数: Count<>(), Sum<>(), Min<>(), Max<>()
Linq扩展函数Enumerable获取Counts
为了使用这些Enumerable扩展函数,一般把LINQ查询表达式用括号括起来,先转换为IEnumerable<T>兼容的对象。
- static void GetCount()
- {
- string[] currentVideoGames = {"Morrowind", "BioShock",
- "Half Life 2: Episode 1", "The Darkness",
- "Daxter", "System Shock 2"};
- // Get count from the query.
- int numb = (from g in currentVideoGames
- where g.Length > 6
- orderby g
- select g).Count<string>();
- // numb is the value 5.
- Console.WriteLine("{0} items honor the LINQ query.", numb);
- }
定义演示的实例
- class Car
- {
- public string PetName = string.Empty;
- public string Color = string.Empty;
- public int Speed;
- public string Make = string.Empty;
- public override string ToString()
- {
- return string.Format("Make={0}, Color={1}, Speed={2}, PetName={3}",
- Make, Color, Speed, PetName);
- }
- }
- static void Main(string[] args)
- {
- Console.WriteLine("***** Fun with Query Expressions *****"n");
- // This array will be the basis of our testing
- Car[] myCars = new [] {
- new Car{ PetName = "Henry", Color = "Silver", Speed = 100, Make = "BMW"},
- new Car{ PetName = "Daisy", Color = "Tan", Speed = 90, Make = "BMW"},
- new Car{ PetName = "Mary", Color = "Black", Speed = 55, Make = "VW"},
- new Car{ PetName = "Clunker", Color = "Rust", Speed = 5, Make = "Yugo"},
- new Car{ PetName = "Hank", Color = "Tan", Speed = 0, Make = "Ford"},
- new Car{ PetName = "Sven", Color = "White", Speed = 90, Make = "Ford"},
- new Car{ PetName = "Mary", Color = "Black", Speed = 55, Make = "VW"},
- new Car{ PetName = "Zippy", Color = "Yellow", Speed = 55, Make = "VW"},
- new Car{ PetName = "Melvin", Color = "White", Speed = 43, Make = "Ford"}
- };
- // We will call various methods here!
- Console.ReadLine();
- }
【编辑推荐】