Это не будет работать из-за того, что list.view[0]
возвращает новый SPView при каждом вызове;см здесь .В вашем случае вы вызываете update()
для нового экземпляра.
Чтобы заставить его работать, сохраните представление в переменной и добавьте поле в это представление.(Пример для вида по умолчанию, но list.View[0]
также должен работать)
SPView view = list.DefaultView;
view.ViewFields.Add("Foo");
view.Update();