我如何检查列表是否包含项...真的只对检查1个字段感兴趣,而不对列表中的每个字段感兴趣。

如何以最有效的方式完成此操作,创建一个SPListItemCollection并通过此方法进行检查以检查唯一值,实际上将使cpu的使用趋于平直。列表?

最佳答案

这是Waldek Mastykarz的一首好歌。

一般规则是使用SPQuery。有关更多详细信息,请参见comparison of techniques。这是一个基本示例:

SPList list = SPContext.Current.Web.Lists["Some List"];
SPQuery query = new SPQuery();
query.Query = @"
    <Where>
        <Eq>
            <FieldRef Name='SomeField' />
            <Value Type='Text'>Value To Match</Value>
        </Eq>
    </Where>";
SPListItemCollection found = list.GetItems(query);
if (found.Count > 0)
{
    // Do something
}

有关SPQuery的一些注意事项:
  • 如果您输入的查询错误,它可以返回所有答案,而不是给出错误
  • 如果您输入的查询错误,它有时会给出无益/误导性的错误
  • 确保您获得正确的值类型

  • 通过使用诸如U2U CAML Builder(SharePointDevWikiWindows版本-Web最好是IMHO的版本)之类的工具或Web来构建并测试来为您节省很多麻烦。

    关于SharePoint : Check if item exists in a list,的最低开销,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1340444/

    10-12 15:43