在C#中写一个递减数组

时间:2013-02-14 09:12:39

标签: c# arrays c#-4.0

这是你需要一些相当明显的小帮助的日子之一,我需要创建一系列递减年份,并且需要显示从当年开始的五年减量现在它将是(2012,2011,2010) ,2009,2008)等....

我无法想到如何在c#中做任何帮助。

此致

4 个答案:

答案 0 :(得分:7)

这个怎么样?

Enumerable.Range(DateTime.Now.Year - 5, 5).Reverse().ToArray();

Enumerable.Range(int start, int count)将从5年前开始为您提供5个后续数字。 Reverse()反转序列;)ToArray()从中创建一个arrray。

答案 1 :(得分:2)

普通老C#:

int[] ret = new int[5];
for ( int i = 0; i < 5; i++ )
    ret[i] = DateTime.Now.Year - i - 1;

使用LINQ:

var ret = Enumerable.Range(0, 5).Select(i => DateTime.Now.Year - i - 1).ToArray();

Botz3000 LINQ version(更好):

var ret = Enumerable.Range(DateTime.Now.Year - 5, 5).Reverse().ToArray()

答案 2 :(得分:2)

这样可以正常工作:

var year = DateTime.Today.Year;
var array = new int[5];

for (int i = 0; i < 5; i++)
{
    array[i] = year--;
}

答案 3 :(得分:0)

public Int32[] GetDecrementalYearsArray(int startWith, int countOfItems)
{
   Int32[] array = new Int32[countOfItems];
   array[0] = startWith;
   for(int i=1;i<countOfItems;i++)
   {
       array[i] = startWith-i;
   }
   return array;
}