如何检查列表是否包含项目...真的只对检查1个字段感兴趣,而不是检查列表中的每个字段。
如何以最有效的方式完成,创建一个SPListItemCollection并通过它来检查唯一值是否真的会使cpu使用变得平坦......当然必须有一种方法可以做到这一点而不需要通过每个列表中的项目?
答案 0 :(得分:11)
这是来自Waldek Mastykarz的好comparison of techniques。
一般规则是使用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
}
关于SPQuery的一些注释:
使用U2U CAML Builder(Windows或Web版本的工具 - Web更好的恕我直言)或Stramit CAML Viewer来构建并测试,可以省去很多麻烦您的疑问。