我必须使用C#中的一些数据进行操作。我的想法是将它们添加到数组中。该数组的元素将是(它将是包含3个元素的数组)
12, test11, comment12, comment23
15, test21, comment22, comment23
27, test31, comment32, comment33
... etc
然后,我需要改变ie。元素15应该改为
15, test21, comment22A, comment23
你能帮我解决一下如何使用这种阵列吗?
提前谢谢!
答案 0 :(得分:5)
目前还不清楚你的数组元素究竟是什么硬 - 但它 看起来像是有一定数量的结构。我建议您将该结构封装在一个新类型中 - 这样您最终可能会得到:
FooBar[] values = ...;
values[15] = new FooBar(15, "test21", "comment22A", "comment23");
或可能同样但List<T>
。多维数组(或数组数组)通常比一些封装良好的类型的单个集合更难处理。此外,您至少应该考虑使用比数组更高级别的抽象 - 有关详细信息,请参阅Eric Lippert的博客文章"arrays considered somewhat harmful"。
如果您的第一个值是某种标识符,您甚至可能希望将其更改为Dictionary<int, FooBar>
或KeyedCollection<int, FooBar>
。
答案 1 :(得分:1)
同意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
}
}
答案 2 :(得分:1)
我完全赞同Jon Skeet的回答。在C#的七年专业开发中,我不记得多次使用多维数组了一两次。语言和.NET框架为我们在旧语言中使用多维数组的大多数情况提供了更好的替代方案。
那就是说,这是你如何为现有数组赋值。
首先,由于您的问题没有指定数据类型,我们假设您已将数组声明为多维字符串数组:
string foo[,] = new string[42, 3];
您可以访问第二个“列”,可以这么说,第15个“行”,如下所示:
foo[15,2] = "comment22A";
您可以在the C# Programming Guide中的C#中找到有关多维数组的更多信息。