一千萬個為什麽

搜索

在文件中查找最大值

我需要在文件的每個1000個值內找到最大值,即如果文件中有5000個值,則應該有5個最大值。在前1000個值中:一個最大值,然後在接下來的1000個值內再增加一個最大值....等等。

該文件的大小將是未知的

我準備了一個代碼,用於在文件的前1000個值內找到最大值。我正在考慮重復它,以獲得理想的結果,但不能。代碼如下。

List list = new List();
StreamReader dat = new StreamReader(file path);
//int count = 1;
string dataline = "";
for (int i = 1; i <= dat.BaseStream.Length; i+=1000)
{
    while ((dataline = dat.ReadLine()) != null)
    {
        Double sdat = Double.Parse(dataline);
        list.Add(sdat);
        richTextBox1.Text = list.Take(1000).Max().ToString();
    }
}

最佳答案

您可以將索引值分組,並從每個組中獲取最大值:

List max =
  File.ReadAllLines(filePath)
  .Select((s, i) => new KeyValuePair(i, Double.Parse(s)))
  .GroupBy(x => x.Key/1000, x => x.Value)
  .Select(g => g.Max())
  .ToList();

轉載註明原文: 在文件中查找最大值