可能是一个非常简单的一个-我开始用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<T>: 要做到这一点,你需要将数组转换为var termsList = terms.ToList();并使用Add方法。然后使用var terms = termsList.ToArray();方法转换回数组。
var terms = default(int[]);
var termsList = terms == null ? new List<int>() : terms.ToList();
for(var i = 0; i < 400; i++)
termsList.Add(i);
terms = termsList.ToArray();
第二种方法是调整当前数组的大小:
var terms = default(int[]);
for(var i = 0; i < 400; i++)
{
if(terms == null)
terms = new int[1];
else
Array.Resize<int>(ref terms, terms.Length + 1);
terms[terms.Length - 1] = i;
}
如果你使用的是。net 3.5 Array.Add(…);
这两种方法都允许您动态地进行操作。如果你要添加很多项目,那么只需使用List<T>。如果只有几个项,那么调整数组的大小会有更好的性能。这是因为您在创建List<T>对象时受到了更多的影响。
时间单位为蜱:
3项
数组调整大小时间:6 List添加时间:16
400件
数组大小调整时间:305 List添加时间:20
其他回答
到2019年,你可以使用LinQ在一行中使用Append, Prepend
using System.Linq;
然后在NET 6.0中:
terms = terms.Append(21);
或低于NET 6.0的版本
terms = terms.Append(21).ToArray();
数组推送示例
public void ArrayPush<T>(ref T[] table, object value)
{
Array.Resize(ref table, table.Length + 1); // Resizing the array for the cloned length (+-) (+1)
table.SetValue(value, table.Length - 1); // Setting the value for the new element
}
你必须先分配数组:
int [] terms = new int[400]; // allocate an array of 400 ints
for(int runs = 0; runs < terms.Length; runs++) // Use Length property rather than the 400 magic number again
{
terms[runs] = value;
}
这里提供了关于如何使用数组来做到这一点的答案。
然而,c#有一个非常方便的东西叫做System。集合
集合是使用数组的理想替代品,尽管其中许多在内部使用数组。
例如,c#有一个名为List的集合,其功能与PHP数组非常相似。
using System.Collections.Generic;
// Create a List, and it can only contain integers.
List<int> list = new List<int>();
for (int i = 0; i < 400; i++)
{
list.Add(i);
}
下面是如何处理向数组中添加新数字和字符串的一种方法:
int[] ids = new int[10];
ids[0] = 1;
string[] names = new string[10];
do
{
for (int i = 0; i < names.Length; i++)
{
Console.WriteLine("Enter Name");
names[i] = Convert.ToString(Console.ReadLine());
Console.WriteLine($"The Name is: {names[i]}");
Console.WriteLine($"the index of name is: {i}");
Console.WriteLine("Enter ID");
ids[i] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine($"The number is: {ids[i]}");
Console.WriteLine($"the index is: {i}");
}
} while (names.Length <= 10);