如何限制/截断数组

本文关键字:数组 何限制 | 更新日期: 2023-09-27 18:26:43

我写了一个应用程序,它读取由数字组成的文本文件,然后将它们转换为双数组,然后对数字进行一些数学计算,计算平均值、标准差、方差等。

我的问题是,如果文本文件包含很多值,我如何调整/设置数组的大小,使其只接受前50个值?

这是我的代码:

FileReaderClass fr = new FileReaderClass();
CalculatorClass calc = new CalculatorClass();
string[] readText = fr.ReadFile(fileName);
double[] data = fr.ConvertToDoubleArray(readText);
if (data.Length < 5)
{
    MessageBox.Show("There are not enough data points in this file to perform the calculation.");
    return;
}
else if (data.Length > 50)
{
    //limit the array to the first 50 values. Then perform the calculations...
}
//else perform the calculations.....

如何限制/截断数组

使用Array.Resize:

else if (data.Length > 50)
{
    //limit the array to the first 50 values. Then perform the calculations...
    Array.Resize(ref data, 50);
}    

这将重新分配阵列。

请注意,如果当前大小小于您的限制50,这将增加数组的大小,因此应保持if (data.Length > 50)检查。

您不能调整数组的大小,但可以使用Take方法来获取前50个项目。

另一种方法是首先读取50行,正如@Habib在评论中提到的那样,使用File.ReadLines方法可以很容易地做到这一点:

string[] readText = File.ReadLines("path").Take(50).ToArray();