Evg*_*eny 23 c# arrays boolean
假设我有一个填充了布尔值的数组,我想知道有多少元素是真的.
private bool[] testArray = new bool[10] { true, false, true, true, false, true, true, true, false, false };
int CalculateValues(bool val)
{
return ???
}
Run Code Online (Sandbox Code Playgroud)
如果val为真,则CalculateValues应返回6,如果val为false,则返回4.
明显的解决方案:
int CalculateValues(bool val)
{
int count = 0;
for(int i = 0; i<testArray.Length;i++)
{
if(testArray[i] == val)
count++;
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
有"优雅"的解决方案吗?
Chr*_*ght 35
使用LINQ.你可以做testArray.Where(c => c).Count();真正的计数或testArray.Where(c => !c).Count();用于虚假检查
Ree*_*sey 13
您可以使用:
int CalculateValues(bool val)
{
return testArray.Count(c => c == val);
}
Run Code Online (Sandbox Code Playgroud)
它根据您的参数处理true和false检查val.