数组的最大值函数

时间:2015-11-29 17:51:08

标签: c#

我已在文件中读取,将文件分为三列,并将每列中的所有数据放入3个数组中。我现在需要创建一个方法来从第二列数组中获取最大值。这是代码:

static void Main(string[] args) 
{ 
    string file1 = System.IO.File.ReadAllText(@"C:\file1.txt");

    List<double> Array1 = new List<double>();
    List<double> Array2 = new List<double>();
    List<double> Array3 = new List<double>();

    IEnumerable<string> lines = File.ReadLines(@"C:\File1.txt");

    foreach (string line in lines)
    {
        string[] columns = line.Split(',');

        if (columns.Length != 3)
        {
            continue; // skips this line
        }

        Array1.Add(Convert.ToDouble(columns[0]));
        Array2.Add(Convert.ToDouble(columns[1]));
        Array3.Add(Convert.ToDouble(columns[2]));
    }

Console.WriteLine(Max(Array1.ToArray()));
}
static double Max (double[] x)
{
    double maxValue = x.Max();
    return maxValue;
}

错误:类型或命名空间定义,或预期的文件结束。

我需要修复Max方法,而且我不知道怎么说我们需要得到最大值的是数组2。然后我需要回到主要和使用最大方法来获得数组2的最大值。很明显,他们是Max函数中的初学者错误,但我已经研究了问题,我不确定如何继续。

2 个答案:

答案 0 :(得分:0)

static double Max (double[] x)
{
    double[] x // This line shouldn't be here

    double maxValue = x.Max();
    return maxValue;
}

您在参数和方法中重复声明double[] x两次。这会搞砸。

此外,尽量不要让您的方法与API中的名称相同,只是为了使代码更易于阅读。

最后,你从未从main调用过该方法。 :P

答案 1 :(得分:0)

namespace Your_Name_Space
{
    class Your_Program
    {
        public static void Main(string[] args)
        {
            string file1 = System.IO.File.ReadAllText(@"D:\file1.txt");

            List<double> Array1 = new List<double>();
            List<double> Array2 = new List<double>();
            List<double> Array3 = new List<double>();

            IEnumerable<string> lines = File.ReadLines(@"D:\File1.txt");

            foreach (string line in lines)
            {
                string[] columns = line.Split(',');

                if (columns.Length != 3)
                {
                    continue; // skips this line
                }

                Array1.Add(Convert.ToDouble(columns[0]));
                Array2.Add(Convert.ToDouble(columns[1]));
                Array3.Add(Convert.ToDouble(columns[2]));
            }

            Console.WriteLine(Max(Array1.ToArray()));
            Console.ReadKey();
        }

        public static double Max(double[] x)
        {
            double maxValue = x.Max();
            return maxValue;
        }
    }
}

file1.text的内容如下:

1, 2, 3 
4, 5, 6
7, 8, 9

所有代码都已运行。编译并执行上述代码时,会产生以下结果:

7

&#39;文件结尾预期&#39;错误的原因是大括号过剩。你应该控制你的牙套。价值7不是第二个。