SharePoint:检查列表中是否存在项目,最小开销

JL.*_*JL. 5 sharepoint

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

如何以最有效的方式完成,创建一个SPListItemCollection并通过它来检查唯一值是否真的会使cpu使用变得平坦......当然必须有一种方法可以做到这一点,而无需通过itteterating遍历每个项目清单?

Ale*_*gas 11

这是Waldek Mastykarz 技术的良好比较.

一般规则是使用SPQuery.有关详细信息,请参阅SharePointDevWiki.这是一个基本的例子:

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
}
Run Code Online (Sandbox Code Playgroud)

关于SPQuery的一些注意事项:

  • 如果您的查询错误,它可以返回所有答案而不是出错
  • 如果您的查询错误,有时会产生无用/误导性错误
  • 确保您获得正确的值类型

通过使用U2U CAML Builder(WindowsWeb版本 - Web更好的恕我直言)或Stramit CAML Viewer等工具来构建和测试您的查询,可以省去很多麻烦.