如何在 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;
}
将其更改为:
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