Я обнаружил, что удаление всех элементов из списка и их чтение в порядке, который мне нравится, работает хорошо (хотя и немного радикально). Вот код, который я использую:
string[] fieldNames = new string[] { "Title", "My New Field", "Modified", "Created" };
SPViewFieldCollection viewFields = view.ViewFields;
viewFields.DeleteAll();
foreach (string fieldName in fieldNames)
{
viewFields.Add(fieldName);
}
view.Update();