创建一个返回数组的方法

时间:2016-01-01 10:45:37

标签: c# arrays methods

我要创建一个辅助方法,该方法返回一个新数组,其元素是原始数组的平方。但是当我运行代码时,控制台返回" System.Double []"。我该如何解决这个问题?

以下是方法代码:

static double[] powerOfTwo(int[] arr)
        {
            double[] elevatedPower = new double[10];
            elevatedPower[0] = Math.Pow(arr[0], 2);
            elevatedPower[1] = Math.Pow(arr[1], 2);
            elevatedPower[2] = Math.Pow(arr[2], 2);
            elevatedPower[3] = Math.Pow(arr[3], 2);
            elevatedPower[4] = Math.Pow(arr[4], 2);
            elevatedPower[5] = Math.Pow(arr[5], 2);
            elevatedPower[6] = Math.Pow(arr[6], 2);
            elevatedPower[7] = Math.Pow(arr[7], 2);
            elevatedPower[8] = Math.Pow(arr[8], 2);
            elevatedPower[9] = Math.Pow(arr[9], 2);

            return elevatedPower;
        }

以及在控制台中打印它的代码:

static void Main(string[] args)
        {
            double[] powerValues = powerOfTwo(new int[] {1,2,3,4,5,6,7,8,9,10});
            Console.Write(powerValues);
            Console.ReadLine();
        }

4 个答案:

答案 0 :(得分:6)

你的方法运行正常。但是当你执行Console.WriteLine(powerValues)时,编译器会调用ToString()数据类型的System.double[]方法。

foreach(var value in powerValues)
    Console.WriteLine(value);

使用Linq,using System.Linq;

var powerValues = (new int[] {1,2,3,4,5,6,7,8,9,10}).Select(x => x*x);

答案 1 :(得分:3)

当您调用Console.Write(powerValues);时,实际调用Console.Write(powerValues.ToString()); ToString返回一个表示当前对象的字符串。对于double [],这是“System.Double []”。 像这样更改你的代码:

    static void Main(string[] args)
    {
        double[] powerValues = powerOfTwo(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
        foreach (var value in powerValues)
        {
            Console.WriteLine(value);
        }

        Console.ReadLine();
    }

答案 2 :(得分:3)

实际上,您打印您的值。您尝试打印的数组会将其完整类型名称返回为System.Double[],因为ToString会将Console.Write调用它,而IEnumerable<int>显式调用它。

你甚至不需要这样的方法。只需使用Enumerable.Select生成var values = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; foreach (var value in values.Select(i => i * i)) { Console.Write(value); // 149162536496481100 } ,其中包含平方值,例如;

Console.WriteLine

如果您选择Write Console.Write(value + " ")

,我会使用$(document).ready(function(){ var i =0; for(j=2;j<10;j+=3) $("#row"+i+"agent .jqx-grid-cell").eq(j).css("background-color","red"); }); 将这些值分别写在不同的行中,或者至少在它们后面加一个空格

答案 3 :(得分:1)

使用下面的代码在简单的一行中编写代码。

{{1}}

并且每个值都以新行显示,因此与其他值相比,结果也很好。