选择正确的数据类型和逻辑存储自定义数组,如记录(值)

时间:2016-03-07 02:17:05

标签: c# arrays performance optimization sql-server-2012

说我有一个对象,它有一个[id],[name] ..以及其他一些数据信息我称之为元,但真正的data(它的值)就像是

x:2 , y:3 l:6, t:5, n:0 ,genr:plate; x:12 , y:32 l:26, t:45, n:1 ,genr:temp;

..... x 20

什么是最合适的dataType?

因为我不需要将数组中的每个元素存储在它自己的行/记录中,而是将其用作单个记录。

您会选择哪种最佳做法stringbyte array?不是以消费方式而是表现和优雅的方式

1 个答案:

答案 0 :(得分:2)

由于您的数据类型是成对的

x:2 , y:3 l:6, t:5, n:0 ,genr:plate; x:12 , y:32 l:26, t:45, n:1 ,genr:temp;

由于值可以是数字或文本,因此在C#中,考虑使用Dictionary<string, string>来存储一行。因此,如果您有20多行,请考虑使用List Dictionary<string, string>,即:

List<Dictionary<string,string>> data = new List<Dictionary<string,string>>();

要添加新数据,请创建字典,拆分项目,然后将字典添加到列表中:

string line = "x:2 , y:3 l:6, t:5, n:0 ,genr:plate; x:12 , y:32 l:26, t:45, n:1 ,genr:temp;";
Dictionary<string,string> linedata = new Dictionary<string,string>();
string[] lineitems = line.Split(new char[] { ',', ';', ':' }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < lineitems.Length; i += 2)
    linedata.Add(lineitems[i], lineitems[i + 1]);
data.Add(linedata); //each line is one single record in data List