Partager via


SPContentTypeCollection.BestMatch - Méthode

Recherche la collection et retourne l'identificateur de type de contenu (ID) qui est le plus proche à l'ID de type de contenu spécifié.

Espace de noms :  Microsoft.SharePoint
Assembly :  Microsoft.SharePoint (dans Microsoft.SharePoint.dll)

Syntaxe

'Déclaration
Public Function BestMatch ( _
    contentTypeId As SPContentTypeId _
) As SPContentTypeId
'Utilisation
Dim instance As SPContentTypeCollection
Dim contentTypeId As SPContentTypeId
Dim returnValue As SPContentTypeId

returnValue = instance.BestMatch(contentTypeId)
public SPContentTypeId BestMatch(
    SPContentTypeId contentTypeId
)

Paramètres

Valeur renvoyée

Type : Microsoft.SharePoint.SPContentTypeId
La valeur de la propriété Id pour le type de contenu avec la valeur la plus proche du contenu spécifié le type ID. Si la recherche trouve deux correspondances, l'ID plus court est retourné. Par exemple, si 0x0101 est l'argument et que la collection contient à la fois 0x010109 et 0x01010901, la méthode retourne 0x010109.

Remarques

Utilisez cette méthode pour déterminer si une collection contient un enfant d'un type de contenu connu. Gardez à l'esprit, cependant, que lorsque vous copiez un type de contenu de site à une liste, le type de contenu dans la liste Obtient un nouvel ID de type de contenu sous la forme suivante.

site content type ID + "00" + 32-character hexadecimal GUID

Pour plus d'informations, consultez Content Type IDs.

Conseil

Si vous souhaitez savoir partout qu'un type de contenu est utilisé tout au long d'une collection de sites, appelez la méthode GetUsages .

Exemples

L'exemple suivant montre une application de console qui effectue une itération dans les listes d'un site Web et détermine si la collection de type de contenu de chaque liste contient un descendant d'un type de contenu spécifié.

Imports System
Imports Microsoft.SharePoint

Module ConsoleApp
   Sub Main()
      Using siteCollection As SPSite = New SPSite("https://localhost")
         Using webSite As SPWeb = siteCollection.OpenWeb()

            ' Get a content type id to search for.
            Dim contentTypeId As SPContentTypeId = SPBuiltInContentTypeId.Task

            For Each list As SPList In webSite.Lists
               If ListContains(list, contentTypeId) Then
                  Console.WriteLine("The {0} list uses the content type.", list.Title)
               End If
            Next list


         End Using
      End Using
      Console.Write(vbCrLf + "Press ENTER to continue...")
      Console.ReadLine()
   End Sub

   Function ListContains(ByVal list As SPList, ByVal id As SPContentTypeId) As Boolean
      Dim matchId As SPContentTypeId = list.ContentTypes.BestMatch(id)
      Return matchId.IsChildOf(id)
   End Function

End Module
using System;
using Microsoft.SharePoint;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         using (SPSite siteCollection = new SPSite("https://localhost"))
         {
            using (SPWeb webSite = siteCollection.OpenWeb())
            {
               // Get a content type id to search for.
               SPContentTypeId contentTypeId = SPBuiltInContentTypeId.Task;

               foreach (SPList list in webSite.Lists)
               {
                 if (ListContains(list, contentTypeId))
                    Console.WriteLine("The {0} list uses the content type.", 
                                       list.Title);
               }
            }
         }
         Console.Write("\nPress ENTER to continue...");
         Console.ReadLine();
      }

      static bool ListContains(SPList list, SPContentTypeId id)
      {
         SPContentTypeId matchId = list.ContentTypes.BestMatch(id);
         return matchId.IsChildOf(id);
      }
   }
}

L'application imprime la sortie suivante sur la console.

The Tasks list uses the content type.

Press ENTER to continue...

Voir aussi

Référence

SPContentTypeCollection classe

SPContentTypeCollection - Membres

Microsoft.SharePoint - Espace de noms

GetUsages

Autres ressources

Introduction to Content Types

Site and List Content Types

Base Content Type Hierarchy