首页 / 教程列表 / LINQ教程 / LINQ操作符之Count

LINQ操作符之Count

1103 更新于: 2022-04-26 读完约需 6 分钟

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个.

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

本文永久链接码友网 » LINQ教程 » LINQ操作符之Count 分享:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册