【发布时间】:2012-05-02 10:38:14
【问题描述】:
我有以下情况:
一个列表或数组。大小是我从用户那里得到的一个变量,介于 1 到 12 之间。
如果大小为 3,则数组 {1,2,3}
如果大小为 5,则数组 {1,2,3,4,5}
等等
现在开头也是一个变量。
我想得到的序列是:
如果大小为 12,例如开头为 9
我想要这个特定顺序的以下结果。
9,10,11,12,1,2,3,4,5,6,7,8
我的意思是我从给定的开头开始直到最后一项,然后如果开头不是1,那么我继续1直到开始。
我这样做了,但它特定于大小12:
使用此代码:
int[] arr = new int[12];
int month = 9;//input from the user
List<int> source = new List<int>();
while (month <= 12)
{
source.Add(month);
month++;
}
if (source.Count < 12)
{
for (int i = 1; i < source[0]; i++)
{
source.Add(i);
}
}
我想要更通用的解决方案来允许可变大小而不仅仅是12
【问题讨论】:
-
你快接近了。第 1 行不需要数组变量。只需取一些 int 变量,例如 int lenght = 12。现在在 while 循环和 if 条件中将 12 替换为可变长度。编辑:您也可以从函数中输入长度,该函数返回 12 表示月数,30 或 31 表示天数,等等
-
请在下面找到三个解决方案
标签: c# asp.net linq list loops