在方法内声明c#列表

在方法内声明c#列表,c#,list,fortran,declaration,fortran77,C#,List,Fortran,Declaration,Fortran77,我试图将fortran 77代码复制到C#。 这是造成麻烦的原因(至少我认为): 我如何在c#中的某个方法下声明这个新的c列表? 像这样: float acl; float[] c = new float[0:10]; ? 谢谢您的回复。给您: float[] c = new float[11]; 这是一个有用的参考资料 希望有帮助。您的标题表明您可能将列表与数组混淆。我相信您正在问如何将FORTRAN数组转换为C#数组 正在转换的FORTRAN变量是数组,而不是列表。它们将始终是数组。FO

我试图将fortran 77代码复制到C#。 这是造成麻烦的原因(至少我认为):

我如何在c#中的某个方法下声明这个新的
c
列表? 像这样:

float acl;
float[] c = new float[0:10];
?

谢谢您的回复。

给您:

float[] c = new float[11];
这是一个有用的参考资料


希望有帮助。

您的标题表明您可能将
列表
数组
混淆。我相信您正在问如何将FORTRAN数组转换为C#数组

正在转换的FORTRAN变量是数组,而不是列表。它们将始终是数组。FORTRAN中没有列表,除非您自己编写

我的阅读和测试表明,C#不支持选择自己的数组索引下限。换句话说:下限总是零。C#中的数组索引始终是基于零的。因此,除非FORTRAN数组的下限已经为零,否则无法直接转换FORTRAN数组

以你为例:

float[] c = new float[1:7];
因为下限是1,而不是零,所以必须将任何索引下移1

示例数组需要包含7个元素,因此在C#中声明为:

这些元素的寻址或索引将是:

float[0] = 10.5f;  // the first element
float[1] = ...     // the second element
float[6] = ...     // the last element
float[7] =         // runtime error: array index out of bounds
因此,您需要在C#代码中偏移索引以适应这种变化


另外,作为一个实验,我尝试在C#中分配一个数组,其中包含边界说明符,如
float[1:7]
,但得到一个编译器错误,表明它不需要下限。

正如hungndv编写的
float[]C=new float[11]
将是此数组的正确声明

real acl,c(0:10)
正在声明一个实变量和一个实数组。在本例中,它指定了一个包含11个元素的数组,该数组以0开始,以元素10结束。在Fortran 77中,默认情况下,数组是基于1的,但可以选择从零或负数开始。例如:


real d(-10:10,-100:100)
将声明一个二维数组,其中x元素基于-10,y元素基于-100。我一直希望其他语言能够声明数组的底部,我在做数学建模时发现它非常有用。

我不知道fortran,代码应该做什么?你可以在方法体中声明它,但它只会存在于那里。这可能是好的,也可能不是。如果您需要一个更“全局”的变量,请在类级别声明它!查看“变量范围”!@谢谢你,陶。upper Fortran 77代码是一个一维数组,其中有11个保留空间@法哈德,它是用来计算特定温度的。谢谢你。这毕竟是一个一维数组。那么这个呢:
float[]c=newfloat[1:7]如何将其转换为C#<代码>浮点[]c=新浮点[8]?@marco:此处作为参考:。它说
REAL::c(0:3)!将c声明为从c(0)到c(3)的4个浮点数的数组
。希望这有帮助。谢谢。我查看了wikibooks链接,看起来像是
float[]c=newfloat[1:7]
将是``一个由从c(1)到c(7)的4个浮点数组成的数组。````。但这在C#中是如何定义的呢?
float[] c = new float[7];
float[0] = 10.5f;  // the first element
float[1] = ...     // the second element
float[6] = ...     // the last element
float[7] =         // runtime error: array index out of bounds