在SharePoint列表对象上使用linq

and*_*ewb 0 c# linq sharepoint

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

我需要迭代每个列表项并进行条件检查.

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

以下是我如何引用该列表:

SPList list = root.Lists[LISTNAME];
Run Code Online (Sandbox Code Playgroud)

我想做的事情如下:

var items = from li in list.items
    where li.field.Contains("value")
    select li;
Run Code Online (Sandbox Code Playgroud)

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

谢谢,安德鲁

Rub*_*ias 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);
Run Code Online (Sandbox Code Playgroud)