我的应用程序中有一个 DatagridView。我想将 gridview 列序列化为 XML 文件。只序列化列名很容易,但我也想序列化列索引。
我会像这样序列化列:
ArrayList array = new ArrayList();
foreach(DataGridViewColumn column in datagridView1.Columns)
{
array.Add(column.Name)
}
using (FileStream file = new FileStream("test.xml", FileMode.Create))
{
SoapFormatter formatter = new SoapFormatter();
formatter.Serialize(file, array);
}
但我想知道如何也序列化列索引?
在此先感谢您的帮助!
最佳答案
需要注意的两点:
- 由于您不是在创建 soap 消息,我建议
BinarySerializer
或XmlSerializer
用于临时序列化。 - 你绝对应该更喜欢强类型
List<string>
在未类型化的ArrayList
上.
话虽如此,我建议反对完全序列化——它对您的目的来说太重量级了,而且对于长期存储或传输对象(例如,假设你在你的应用程序的 v1.0 中序列化一个类,然后在 v2.0 中反序列化它,各种奇怪的事情都可能发生)。
我建议采用以下方法:按索引对列进行排序,然后将它们逐行写入文件。您的列将在您的文件中正确排序:
using(FileStream file = new FileStream("test.xml", FileMode.Create))
{
var columnNames =
dataGridView1.Columns
.Cast<DataGridViewColumn>()
.OrderBy(x => x.ColumnIndex)
.Select(x => x.Name);
foreach(string column in columnNames)
file.WriteLine(column);
}
关于c# - 序列化 ArrayList 的 Arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6191493/