c# - 使用哪种对象集合类型?

标签 c# arrays list collections

现在我有一个二维字符串数组来保存我的数据:

//...find number of rows needed...
string[,] data = new string[totalRows, 12]; //row / column

它有效。但是现在我想为我的程序添加更多功能,它不再对我有利,因为连接二维数组虽然可行,但会引发其他问题:直到此时我才将行数存储在类变量中,因为我没有需要同时维护两个。可以说我知道列总是相同的,我可以将长度除以它来获取行并编写一个方法来组合它们。

我觉得有更好的方法来解决这个问题。我对“更新”的东西缺乏了解,但我确信其中一个比其他的更符合要求。所以在我开始创建 List<List<String>> data = new List<List<String>>(); 之前或者其他同样奇怪的东西,我希望其他人更有经验的意见。

我不需要任何排序、删除、插入等功能。我只需要它来保存数据;现在我需要能够相对容易地去 data += data2 ——不管怎么说,都是那种效果。 data.Length (仅给出外部长度)也将非常有用。

解决这个问题的最佳方法是什么?

如果您想了解更多信息,请告诉我。谢谢。

基于答案的更多信息:

数据基本上是电子表格格式。即。

[['1234-56789-12345', 'screwdriver', '', 'ea', '1', '', '', '', '', '', '', ''],
[['1234-56789-54321', 'wrench', '', 'ea', '1', '2', '3', '', '', '', '', '']]

我不想弄清楚信息描述的是什么——我不在乎。我需要相对于其他所有内容的位置。

还有更多信息:

用作一个 xml 文件和另一个 xml 文件之间的储 jar 。刚刚意识到那些 xlst 东西可能是我最初问题的另一种解决方案,但是嗯。也许在另一种生活中。 (一切正常..就像我说的,添加功能。如果它有效,为什么要破坏它?)

最佳答案

我认为一个值得问的问题是,您的数据列是否可以更好地由一个对象来表示,该对象解释了每列所包含的内容。例如,代替

row 1 => { "Jane", "Smith", "1 Rocket Ave", "Houston", "TX" }

你有

new Person { FirstName = "Jane", LastName = "Smith", /* etc. */ }

那么您的二维数组就变成了这些新的 Person 对象的一维集合,这些对象更容易在代码中进行推理。

List<Person> people = ...
// vs.
string[,] people = ...

关于c# - 使用哪种对象集合类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5749292/

相关文章:

c# - 使用 azure appsettings 读取 azure webjob 中 EventHubTrigger 的连接字符串

java - 交叉记录列表

list - CLISP : Check if two elements are in order one after another in a list

Java List 的多态性问题

c# - 在 .NET 4.0 应用程序中使用 .NET 1.1 库

c# - 从 mvc Controller 返回二维数组作为 json

c# - 在 ASP.NET 中第一次单击时按钮 OnClick 没有触发?

arrays - 无法读取 : variable isn't array

javascript - 用不同的值填充数组的数组

javascript - 如何从管理员目录中获取员工职位?