LINQ中的Count
C#语言中LINQ的Count操作符用以返回集合中元素的数量或满足给定条件的元素的数量。
Count()
扩展方法有以下两个重载:
int Count<TSource>();
int Count<TSource>(Func<TSource, bool> predicate);
Count
第一个重载方法返回指定集合中的元素数量,而第二个重载方法返回满足lambda表达式/谓词函数指定条件的元素数量。
Count的方法语法
以下是为整数集合numbers
进行的Count
操作:
using System;
using System.Linq;
namespace LinqTutorial
{
public class MyProgram
{
static void Main(string[] args)
{
var numbers = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var count = numbers.Count();
Console.WriteLine($"集合numbers中共有{count}个元素.");
var evenCount = numbers.Count(x => x % 2 == 0);
Console.WriteLine($"集合numbers中共有{evenCount}个偶数元素.");
Console.Read();
}
}
}
运行结果:
集合numbers中共有11个元素.
集合numbers中共有6个偶数元素.
Count的查询语法
Count
支持LINQ的查询语法,示例如下:
using System;
using System.Linq;
namespace LinqTutorial
{
public class MyProgram
{
static void Main(string[] args)
{
var numbers = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var count = (from num in numbers
select num).Count();
Console.WriteLine($"集合numbers中共有{count}个元素.");
var evenCount = (from num in numbers
where num % 2 == 0
select num).Count();
Console.WriteLine($"集合numbers中共有{evenCount}个偶数元素.");
Console.Read();
}
}
}
Count统计复杂类型集合
Count
操作符除了可以应用于简单集合外,也可操作复杂数据类型的集合,示例如下:
using System;
using System.Linq;
namespace LinqTutorial
{
public class MyProgram
{
static void Main(string[] args)
{
var orders = FakeData.Orders;
var count = orders.Count();
Console.WriteLine($"订单集合中共有{count}个订单.");
var filterCount = orders.Count(x => x.Price > 3000);
Console.WriteLine($"其中订单价格大于3000的订单有{filterCount}个.");
Console.Read();
}
}
}
运行结果:
订单集合中共有6个订单.
其中订单价格大于3000的订单有3个.
发表评论
登录用户才能发表评论, 请 登 录 或者 注册