Compartir a través de


Clase SPListItemCollection

Representa una colección de objetos SPListItem .

Jerarquía de la herencia

System.Object
  Microsoft.SharePoint.Administration.SPAutoSerializingObject
    Microsoft.SharePoint.SPBaseCollection
      Microsoft.SharePoint.SPListItemCollection

Espacio de nombres:  Microsoft.SharePoint
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
Public Class SPListItemCollection _
    Inherits SPBaseCollection _
    Implements IEnumerable
'Uso
Dim instance As SPListItemCollection
public class SPListItemCollection : SPBaseCollection, 
    IEnumerable

Comentarios

Para devolver una colección de elementos de una lista, es aconsejable utilizar uno de los métodos de GetItems* de la clase SPList , en lugar de la propiedad Items . Por ejemplo, puede usar el método GetItems de la clase SPList y pasar un objeto SPQuery para devolver elementos específicos de una lista. Para los elementos de las bibliotecas de documentos, use el método GetItemsInFolder de la clase SPDocumentLibrary .

Una vez que devolver una colección de elementos de lista y asignarla a un objeto SPListItemCollection , puede usar un indizador para devolver un único elemento de la colección. Por ejemplo, suponiendo que la colección se asigna a una variable denominada collListItems, use collListItems[index] en C# o collListItems(index) en Visual Basic, donde index es el número de índice del elemento de la colección o el nombre para mostrar de un campo de lista. Como alternativa, para devolver un único elemento de la colección de elementos en una lista, use uno de los métodos de Get* de SPList o de otro objeto de SharePoint siempre que sea posible devolver elementos específicos o archivos. Si usa uno de estos métodos, no enumere todos los elementos de la lista o biblioteca para devolver el elemento. Por ejemplo, use el método GetFile de la clase SPWeb para devolver un archivo específico desde una biblioteca en un sitio Web o use el método GetItemByUniqueId(Guid) de la clase SPList para recuperar un elemento específico cuando sabe su GUID.

Para crear un elemento, puede usar uno de los métodos de Add() de la colección de elementos de lista, aunque es más eficaz utilizar el método AddItem() directamente desde el objeto de lista primario.

Ejemplos

En el ejemplo de código siguiente se usa el método GetItems para devolver elementos específicos de una lista de origen en un sitio y, a continuación, agregar estos elementos a una lista de destino en otro sitio.

Dim siteCollection As SPSite = SPControl.GetContextSite(Context)
Dim destSite As SPWeb = siteCollection.AllWebs("Destination_Site")
Dim srcSite As SPWeb = siteCollection.AllWebs("Source_Site")
Dim srcList As SPList = srcSite.Lists("Source_List")
Dim srcView As SPView = srcList.Views("Source_Niew_Name")

Dim srcItems As SPListItemCollection = srcList.GetItems(srcView)
Dim destItems As SPListItemCollection = 
    destSite.Lists("Destination_List").Items
Dim srcItem As SPListItem

For Each srcItem In  srcItems

    Dim newItem As SPListItem = destItems.Add()

    newItem("destField1_Name") = srcItem("srcField1_Name")
    newItem("destField2_Name") = srcItem("srcField2_Name")
    newItem("destField3_Name") = srcItem("srcField2_Name")

    newItem.Update()

Next srcItem 
SPSite oSiteCollection = SPContext.Current.Site;
SPWeb oWebsiteDest = oSiteCollection.AllWebs["Destination_Site"];
SPWeb oWebsiteSrc = oSiteCollection.AllWebs["Source_Site"];
SPList oList = oWebsiteSrc.Lists["Source_List"];
SPView oView = oList.Views["Source_View_Name"];

SPListItemCollection collListItemsSrc = oList.GetItems(oView);
SPListItemCollection collListItemsDest =
oWebsiteDest.Lists["Destination_List"].Items;

foreach (SPListItem oListItemSrc in collListItemsSrc)
{
    SPListItem oListItemDest = collListItemsDest.Add();

    oListItemDest["destField1_Name"] = oListItemSrc["srcField1_Name"];
    oListItemDest["destField2_Name"] = oListItemSrc["srcField2_Name"];
    oListItemDest["destField3_Name"] = oListItemSrc["srcField2_Name"];

    oListItemDest.Update();
}
oWebsiteDest.Dispose();
oWebsiteSrc.Dispose();

Nota

Determinados objetos implementan la interfaz de IDisposable y, a continuación, se debe evitar la conservación de estos objetos en la memoria que ya no se necesitan. Para obtener información acerca de buenas prácticas de codificación, vea Disposing Objects.

Seguridad para subprocesos

Los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para los subprocesos.

Vea también

Referencia

Miembros SPListItemCollection

Espacio de nombres Microsoft.SharePoint