0

我有一个引用 SharePoint 列表的 C# 变量。

我需要遍历每个列表项并进行条件检查。

我想在进入循环之前使用 linq 调用来过滤掉一些数据。

以下是我引用列表的方式:

SPList list = root.Lists[LISTNAME];

我想做类似的事情:

var items = from li in list.items
    where li.field.Contains("value")
    select li;

这可能吗?我不确定标准命名空间 System.Linq 是否可以与 SharePoint 一起使用。

谢谢,安德鲁

4

2 回答 2

6

如果你需要使用 Linq,你可以使用SPMetal。但是您可以通过使用 CAML 查询获得更好的性能,如下所示:

SPWeb   web   = SPContext.Current.Web;
SPList  list  = web.Lists[LISTNAME];
SPQuery query = new SPQuery
{
    Query = @"<Where>
                 <Contains>
                    <FieldRef Name='Field' />
                    <Value Type='Text'>your value</Value>
                 </Contains>
              </Where>"
};
SPListItemCollection items = list.GetItems(query);
于 2013-06-04T22:33:46.487 回答
3

您可能想要Microsoft.Sharepoint.Linq命名空间,而不是System.Linq. 你可以在这里找到它。Microsoft 在此处也有一些关于 Linq to SharePoint 的文档。

于 2013-06-04T22:28:59.520 回答