Две вещи, на которые стоит обратить внимание:
- Поскольку вы не создаете мыльное сообщение, я бы порекомендовал
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);
}