C# 带有文档库的团队站点

C# 带有文档库的团队站点,c#,sharepoint,document,splist,C#,Sharepoint,Document,Splist,我有一个团队网站,如果我创建了一个包含文档的文档库,我会尝试将文档库中的一列设置为空 但该列不为空 public override void FeatureActivated(SPFeatureReceiverProperties properties) { SPWeb web = (SPWeb)properties.Feature.Parent; SPList list = web.Lists.TryGetList("Document Library"); if (l

我有一个团队网站,如果我创建了一个包含文档的文档库,我会尝试将文档库中的一列设置为空

但该列不为空

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
    SPWeb web = (SPWeb)properties.Feature.Parent;

    SPList list = web.Lists.TryGetList("Document Library");
    if (list != null)
    {
        SPListItemCollection listItemCollection = list.GetItems();
        foreach (SPListItem item in listItemCollection)
        {
            var columnToUpdate ="MyField";
            string internalName = item.Fields[columnToUpdate].InternalName;

            item[internalName] = "";
            item.Update();
        }
    }
}

我想您应该找到另一种清空字段的方法,而不是在foreach循环中,因为foreach是在容器上迭代的,确保每个项目只访问一次,而不更改容器,以避免令人讨厌的副作用(即,foreach是只读的)。也许尝试使用for循环执行类似的步骤会有所帮助,如以下代码:

    SPListItemCollection listItemCollection = list.GetItems();

    for (int i = 0; i < listItemCollection.Count; i++)
    {
        var columnToUpdate = "MyField";
        var item = listItemCollection[i];
        string internalName = item.Fields[columnToUpdate].InternalName;

        item[internalName] = "";
        item.Update();
    }
SPListItemCollection listItemCollection=list.GetItems();
for(int i=0;i
希望这会有帮助。 如果你在这里找不到解决方案,我建议你问这个问题