在C#中向数组添加值

时间:2014-03-11 16:08:01

标签: c#

您好我刚刚开始使用c#并且正在练习数组,我的问题是我如何添加一个名为“steve”的名称来代码:

    string[] names = new string[] {"Matt", "Joanne", "Robert"};

    foreach (string i in names)
    {
        richTextBox1.AppendText(i + Environment.NewLine);
    }

任何人都可以帮助我吗?

8 个答案:

答案 0 :(得分:3)

你可以resize an array,但如果你需要一个大小发生变化的集合,最好只使用一个列表。

请注意,调整数组大小实际上只会在幕后创建一个大小合适的新数组,并复制所有数据

答案 1 :(得分:2)

阵容不能很好地运用这个想法。通常,人们使用List来做这种事情。

List<string> names = new List<string> {"Matt", "Joanne", "Robert"};

names.Add("Steve");

foreach (string i in names)
{
    richTextBox1.AppendText(i + Environment.NewLine);
}

答案 2 :(得分:2)

创建阵列后,无法向阵列添加元素。你可以:

  • 在将数组创建为文字之前添加元素:

    string[] names = new string[] {"Matt", "Joanne", "Robert", "Steve", "Another name", "Tons of other names"};
    
  • 或者您可以使用一个集合,允许您在创建元素后添加元素,例如List。要使用List而不是数组,请确保在主文件的顶部有以下指令using System.Collections.Generic(默认情况下应包含该指令)。现在你可以做到:

    List<string> names = new List<string> {"Matt", "Joanne", "Robert"};
    names.Add("Steve");
    names.Add("Another one");
    

答案 3 :(得分:1)

虽然you can expand .NET arrays,但在这样的情况下,使用List<string>会更好:

List<string> names = new List<string> {"Matt", "Joanne", "Robert"};

现在,您可以通过调用names

Add添加新名称
names.Add("Steve");

注意:您可以使用AppendText,而不是在循环中使用string.Join,如下所示:

richTextBox1.AppendText(names.Join(Environment.NewLine, names));

答案 4 :(得分:1)

要使用您提供的代码将项目添加到数组,您可以执行以下操作:

string[] names = new string[] { "Matt", "Joanne", "Robert" };

Array.Resize(ref names, names.Length + 1);
names[names.Length - 1] = "Steve";

foreach (string i in names)
{
    richTextBox1.AppendText(i + Environment.NewLine);
}

请考虑使用此代码,它使用List:

List<string> names = new List<string> { "Matt", "Joanne", "Robert" };
names.Add("Steve");     // Add a new entry
richTextBox1.AppendText(String.Join(Environment.NewLine, names));

答案 5 :(得分:0)

该数组具有修复大小。起初你用三个元素创建了它,所以它将有三个元素。您可以修改任何元素:

names[index] = "value";

答案 6 :(得分:0)

您可以通过写入来从数组中创建列表:

List<string> list = names.OfType<string>().ToList();

然后像其他人提到的那样继续!

答案 7 :(得分:0)

调整数组大小的示例:

string[] names = { "Matt", "Joanne", "Robert" };
Array.Resize(ref names, names.Length + 1);
names[names.Length - 1] = "Steve";

史蒂夫在上面给出了适当的参考。