我试图弄清楚如何计算数组中有多少数字落在1.5 - 35之间。我正在努力找出应该使用哪种方法来实现这一目标。我想的可能是for-each嵌入式循环,但是我越想到它就越多我对该方法的质疑。任何帮助将不胜感激,我将如何实现这一点,我将在下面发布我的当前代码,因为我已经研究了如何计算等式的平均和最低价格。
class Program
{
static void Main(string[] args)
{
read_stock_price();
}
static void read_stock_price()
{
Console.Write("Enter how many stocks to enter price for: ");
int numStocks = Convert.ToInt32(Console.ReadLine());
double[] arrayinput = new double[numStocks];
for (int i = 0; i < numStocks; ++i)
{
Console.Write("Enter price for stock number: ");
arrayinput[i] = Convert.ToDouble(Console.ReadLine());
}
double sum = arrayinput.Sum();
double average = sum / numStocks;
Console.WriteLine("Average price: {0} out of {1} stocks", average, numStocks);
Console.WriteLine("Minimum price: {0}", arrayinput.Min());
}
}
答案 0 :(得分:2)
您可以使用LINQ而不是var count = arrayinput
.Where(x => 1.5 <= x && x <= 35.0)
.Count();
。首先过滤数组然后计算元素。
{{1}}
答案 1 :(得分:1)
最短的方式是Enumerable.Count
var count = arrayinput.Count(x => 1.5 < x && x < 35.0);
答案 2 :(得分:0)
如果我们假设 arrayinput 是您填充的数组,您可以使用它:
double[] arrayinput = new double[numStocks];
double[] filteredArray = arrayinput.Where(p => p > 1.5 && p < 3.5).ToArray();
int count = filteredArray.Count();
此代码过滤您的数组,其值介于1.5和1.5之间。 3.5。