开放的编程资料库

当前位置:我爱分享网 > C#教程 > 正文

C# 列表计数

在本文中,我们展示了如何在C#中对列表元素进行计数。

C#列表是相同类型元素的集合。可以通过索引访问元素。

要对元素进行计数,我们可以使用Count属性或Enumerable.Count扩展方法。

C#列表计数简单示例

我们使用Count属性和方法计算元素的数量。

var words = new List<string> { "sky", "cup", "new", "war", "wrong",
    "crypto", "forest", "water" };

Console.WriteLine($"There are {words.Count} elements in the list");
Console.WriteLine($"There are {words.Count()} elements in the list");

程序定义了一个字符串列表。我们将列表的元素数量打印到控制台两次。

$ dotnet run
There are 8 elements in the list
There are 8 elements in the list

带谓词的C#列表计数

谓词是一个返回布尔值的函数。在下一个示例中,我们计算满足给定谓词的元素数。

var words = new List<string> { "sky", "cup", "new", "war", "wrong",
    "crypto", "forest", "water" };

var n = words.Where(e => e.StartsWith("w")).Count();
Console.WriteLine($"{n} words start with w");

var n2 = words.Count(e => e.StartsWith("c"));
Console.WriteLine($"{n2} words start with c");

程序计算以“w”和“c”开头的单词数。

var n = words.Where(e => e.StartsWith("w")).Count();

在第一种情况下,我们使用Where方法来过滤列表,然后我们对结果调用Count

var n2 = words.Count(e => e.StartsWith("c"));

或者,我们可以将lambda表达式作为参数传递给Count

$ dotnet run
3 words start with w
2 words start with c

带有查询表达式的C#ListCount

在下一个程序中,我们使用LINQ的查询表达式对元素进行计数。

var cars = new List<Car>
{
    new ("Audi", 52642),
    new ("Mercedes", 57127),
    new ("Skoda", 9000),
    new ("Volvo", 29000),
    new ("Bentley", 350000),
    new ("Citroen", 21000),
    new ("Hummer", 41400),
    new ("Volkswagen", 21600)
};

var n = (from car in cars
          where car.Price > 30000 && car.Price < 100000
          select car).Count();

Console.WriteLine(n);

record Car(string Name, int Price);

在程序中,我们找出所有价格在30000到100000之间的汽车并进行计数。

$ dotnet run
3

C#列表计数组

在下一个程序中,我们将元素分组并计算每组中元素的数量。

var cars = new List<Car>
{
    new ("Audi", "red", 52642),
    new ("Mercedes", "blue", 57127),
    new ("Skoda", "black", 9000),
    new ("Volvo", "red", 29000),
    new ("Bentley", "yellow", 350000),
    new ("Citroen", "white", 21000),
    new ("Hummer", "black", 41400),
    new ("Volkswagen", "white", 21600),
};

var groups = from car in cars
             group car by car.Colour into g
             select new { Key = g.Key, Count = g.Count() };

foreach (var group in groups)
{
    Console.WriteLine($"{group.Key}: {group.Count}");
}

record Car(string Name, string Colour, int Price);

我们有一份汽车清单。我们按颜色对它们进行分组并计算每组的大小。

$ dotnet run
red: 2
blue: 1
black: 2
yellow: 1
white: 2

在本文中,我们展示了如何在C#中对列表元素进行计数。

列出所有C#教程。

未经允许不得转载:我爱分享网 » C# 列表计数

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏