我要创建一个辅助方法,该方法返回一个新数组,其元素是原始数组的平方。但是当我运行代码时,控制台返回" 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();
}
答案 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}}
并且每个值都以新行显示,因此与其他值相比,结果也很好。