7

我在这里查看了可能的答案(我认为对于 PHP):http ://www.lateralcode.com/store-array-database/但我找不到序列化/反序列化的 C#.net 版本。

这是否会与我上面的链接中显示的方式相同,或者在给定环境的情况下,我应该使用完全不同的方法吗?

我只是不想为我的 9 个不同数组中的每一个中的 12 个值中的每一个都有一堆不同的列,所以如果有另一种方法来实现这一点(转换为字节 [] 等),我不止愿意听。

如果有帮助,数组将是简单的 string[] 数组。

4

3 回答 3

10

将您的字符串数组转换为单个字符串,如下所示:

 var a = String.Join(",",arrays); 

 //or aim is to provide a unique separator, 
 //i.e which won't be the part of string values itself.
 var a= String.Join("~~",arrays); 

并像这样取回它:

var arr = a.Split(',');
//or split via multiple character 
var arr = a.Split(new string[] { "~~" }, StringSplitOptions.None);
于 2013-04-04T14:27:35.313 回答
2

试试这个来序列化数组并在 Blob 类型的数据库中创建一个列来存储字节数组。

序列化:

 if(array == null)
        return null;
 BinaryFormatter bf = new BinaryFormatter();
 MemoryStream ms = new MemoryStream();
 bf.Serialize(ms, array);

反序列化:

String[] array = new String[10];        
BinaryFormatter bf = new BinaryFormatter();     
ms.Position = 0;        
array = (String[])bf.Deserialize(ms);
于 2013-04-04T14:00:31.170 回答
0

我只是不想为我的 9 个不同数组中的每一个中的 12 个值中的每一个都有一堆不同的列,所以如果有另一种方法来实现这一点(转换为字节 [] 等),我不止愿意听。

从上面的描述中,看起来您正在使用 RDBMS。

您想在单个列中存储多个值的事实表明设计存在问题。

我同意拥有单独的列可能不是要走的路,特别是如果每​​个数组中的项目数将来可能会发生变化。

考虑将此数据分离到一个单独的表中,并与具有外键关系的原始表进行一对多映射

于 2013-04-10T19:47:20.200 回答