消除SharePoint集合中的值

时间:2013-12-02 13:51:24

标签: c# sharepoint sharepoint-2010 caml sharepoint-workflow

我在处理集合时遇到问题。我想根据另一个集合的内容从集合中删除一些条目。

我有两个收藏品;一个包含我通过SPQuery(SPListItemCollection)获得的一组工作流任务,另一个是来自人员选择器(SPFieldUserValueCollection)的用户列表。

我想获得一个列表(类型为SPFieldUserValueCollection),该列表仅包含那些尚未分配查询中列出的工作流任务的用户。

没有遍历用户列表,并将LookupID与工作流任务上的“Assigned To”字段进行比较(我真的不想这样做),如何才能做到最好?

我正在寻找一个优雅的解决方案。

1 个答案:

答案 0 :(得分:1)

另一种可能性是使用 SPQuery 查询用户列表。 这比迭代所有用户要快得多。 您可以使用查询中的<In>标记来获取尚未由工作流分配的所有用户。 对于此标记,请检查:http://rmanimaran.wordpress.com/2011/03/11/new-in-sharepoint-2010-caml-query/

如何从页面中排除项目的示例:

<Where>     
    <And>     
        <Eq>     
            <FieldRef Name="Specialization"/>     
            <Value Type="Lookup">SQL Server</Value>     
        </Eq>     
        <NotIncludes>     
            <FieldRef Name='Specialization'/>     
            <Value Type='Lookup'>Crystal Report</Value>     
        </NotIncludes>     
     </And>     
</Where>