可能是一个非常简单的一个-我开始用c#和需要添加值到一个数组,例如:
int[] terms;
for(int runs = 0; runs < 400; runs++)
{
terms[] = runs;
}
对于那些使用过PHP的人,下面是我试图在c#中做的事情:
$arr = array();
for ($i = 0; $i < 10; $i++) {
$arr[] = $i;
}
可能是一个非常简单的一个-我开始用c#和需要添加值到一个数组,例如:
int[] terms;
for(int runs = 0; runs < 400; runs++)
{
terms[] = runs;
}
对于那些使用过PHP的人,下面是我试图在c#中做的事情:
$arr = array();
for ($i = 0; $i < 10; $i++) {
$arr[] = $i;
}
当前回答
正如其他人所描述的那样,使用List作为中介是最简单的方法,但由于您的输入是一个数组,并且您不希望将数据保存在List中,因此我假定您可能关心性能。
最有效的方法可能是分配一个新数组,然后使用array。Copy或Array.CopyTo。如果你只是想在列表的末尾添加一个项目,这并不难:
public static T[] Add<T>(this T[] target, T item)
{
if (target == null)
{
//TODO: Return null or throw ArgumentNullException;
}
T[] result = new T[target.Length + 1];
target.CopyTo(result, 0);
result[target.Length] = item;
return result;
}
如果需要,我还可以发布以目标索引作为输入的Insert扩展方法的代码。它稍微复杂一点,使用静态方法Array。复制1-2次。
其他回答
如果你用c# 3编写代码,你可以用一行代码来实现:
int[] terms = Enumerable.Range(0, 400).ToArray();
这段代码片段假设您有一个System的using指令。Linq在你的文件顶部。
另一方面,如果您正在寻找可以动态调整大小的东西,这似乎是PHP的情况(我实际上从未学习过它),那么您可能希望使用List而不是int[]。下面是代码的样子:
List<int> terms = Enumerable.Range(0, 400).ToList();
但是请注意,不能通过设置terms[400]来简单地添加第401个元素。相反,你需要像这样调用Add():
terms.Add(1337);
你可以这样做
int[] terms = new int[400];
for (int runs = 0; runs < 400; runs++)
{
terms[runs] = value;
}
或者,你也可以使用列表——列表的优点是,当实例化列表时,你不需要知道数组的大小。
List<int> termsList = new List<int>();
for (int runs = 0; runs < 400; runs++)
{
termsList.Add(value);
}
// You can convert it back to an array if you would like to
int[] terms = termsList.ToArray();
编辑:a) List<T>上的for循环比List<T>上的foreach循环便宜2倍多,b)在数组上的循环比在List<T>上的循环便宜2倍左右,c)使用for在数组上的循环比使用foreach在List<T>上的循环便宜5倍(我们大多数人都这样做)。
/*arrayname is an array of 5 integer*/
int[] arrayname = new int[5];
int i, j;
/*initialize elements of array arrayname*/
for (i = 0; i < 5; i++)
{
arrayname[i] = i + 100;
}
到2019年,你可以使用LinQ在一行中使用Append, Prepend
using System.Linq;
然后在NET 6.0中:
terms = terms.Append(21);
或低于NET 6.0的版本
terms = terms.Append(21).ToArray();
static void Main(string[] args)
{
int[] arrayname = new int[5];/*arrayname is an array of 5 integer [5] mean in array [0],[1],[2],[3],[4],[5] because array starts with zero*/
int i, j;
/*initialize elements of array arrayname*/
for (i = 0; i < 5; i++)
{
arrayname[i] = i + 100;
}
/*output each array element value*/
for (j = 0; j < 5; j++)
{
Console.WriteLine("Element and output value [{0}]={1}",j,arrayname[j]);
}
Console.ReadKey();/*Obtains the next character or function key pressed by the user.
The pressed key is displayed in the console window.*/
}