添加和替换C#数组中的元素

本文关键字:元素 数组 替换 添加 | 更新日期: 2023-09-27 18:19:37

我必须用C#中的一些数据进行操作。我的想法是将它们添加到数组中。该阵列的元素将是(它将是一个有3个元素的阵列)

12, test11, comment12, comment23
15, test21, comment22, comment23
27, test31, comment32, comment33
... etc

然后,我需要更改,即元素15应该更改为

15, test21, comment22A, comment23

你能帮我如何使用这种数组吗。

提前谢谢!

添加和替换C#数组中的元素

目前还不清楚数组中的元素到底是什么,但看起来确实有一定的结构。我鼓励您将该结构封装在一种新的类型中,这样您可能会得到一个:

FooBar[] values = ...;
values[15] = new FooBar(15, "test21", "comment22A", "comment23");

或者可能类似地但是具有CCD_ 1。多维数组(或数组的数组)通常比某种封装良好的类型的单个集合更难处理。此外,您至少应该考虑使用比数组更高级别的抽象-有关更多详细信息,请参阅Eric Lippert的博客文章"数组被认为有些有害"。

如果您的第一个值是某种标识符,您甚至可能希望将其更改为Dictionary<int, FooBar>KeyedCollection<int, FooBar>

同意Jon Skeet的观点,这里是的简单实现

class Program
{
   class MyArrayType
   {
     public int MyInt { get; set; }
     public string Test { get; set; }
     public string Comment1 { get; set; }
     public string Comment2 { get; set; }
     public string Comment3 { get; set; }
   }
  static void Main()
  {
    List<MyArrayType> list = new List<MyArrayType>();
    list.Add(new MyArrayType { MyInt = 1, Test = "test1", Comment1 = "Comment1", Comment2 = "Comment3", Comment3 = "Comment3" });
    // so on
    list[15].MyInt = 15;
    list[15].Comment1 = "Comment";
    // so on
  }
}

我完全同意Jon Skeet回答中的建议。在C#七年多的专业开发过程中,我不记得曾不止一次或两次使用多维数组。对于我们在旧语言中使用多维数组的大多数情况,该语言和.NET框架提供了更好的替代方案。

也就是说,下面是如何为现有数组赋值的方法。

首先,由于您的问题没有指定数据类型,我们假设您已经将数组声明为字符串的多维数组:

string foo[,] = new string[42, 3];

你可以这样访问第15行的第二个"列":

foo[15,2] = "comment22A";

您可以在C#编程指南中找到更多关于C#中多维数组的信息。