如何在 C# 中创建 true 返回计数

本文关键字:true 返回 创建 | 更新日期: 2023-09-27 18:36:53

我做了一个程序,可以读取一堆随机数的输入,并测试它们是否满足某些标准。如果它们满足条件,则该方法返回 true。

我想知道的是是否有一种方法可以保留返回 true 的值总数。

为了节省空间,只需发布我开始使用的输入法和计数法!

任何帮助将不胜感激!

这就是我目前所处的位置...

public bool Requirement(int input, int countOfTrue)
    {
        if (input % 8 == 0 && input % 11 == 0)
        {
            Console.WriteLine("True");
            countOfTrue = countOfTrue + 1;
            return true;
        }
        return false;
    }
public int TotalTrue(int countOfTrue)
    {
        Console.WriteLine("Number of True: ");
        return countOfTrue;
    }

如何在 C# 中创建 true 返回计数

将其更改为:

public bool Requirement(int input, ref int countOfTrue)
{
    if (input % 8 == 0 && input % 11 == 0)
    {
        Console.WriteLine("True");
        countOfTrue = countOfTrue + 1;
        return true;
    }
    return false;
}

添加ref将修改原始变量,而不仅仅是堆栈局部变量。

正如 Kevin 指出的那样,您实际上不能使用 out因为如果if条件为 false,则不会分配变量。

您可以为true计数而不是制作方法制作property。这将节省方法调用和代码空间。用错误的设计节省空间不是一种好的做法。您可以使用ref发送可以递增的初始值,但您需要保存返回的value以用于下一次调用。

public TotalTrueCount {get; set;}
public bool Requirement(int input)
{
    if (input % 8 == 0 && input % 11 == 0)
    {
        Console.WriteLine("True");
        TotalTrueCount++;
        return true;
    }
    return false;
}

最好和最简洁的方法是使用专门为此设计的FindAll方法。

var numbers = new List<int>();
// read the numbers into the list (e.g. from file)
var results = numbers.FindAll(num => num % 8 == 0 && num % 11 == 0); // returns a new list with all the numbers matching your predicate
var resultsCount = results.Count; // number of resulting numbers