共用方式為


SPContentTypeCollection.BestMatch method

在集合中搜尋,並傳回的內容型別識別項 (ID) 最接近的符合指定的內容類型識別碼。

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'宣告
Public Function BestMatch ( _
    contentTypeId As SPContentTypeId _
) As SPContentTypeId
'用途
Dim instance As SPContentTypeCollection
Dim contentTypeId As SPContentTypeId
Dim returnValue As SPContentTypeId

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

參數

傳回值

Type: Microsoft.SharePoint.SPContentTypeId
指定的內容與值最接近的內容類型的Id屬性的值輸入識別碼。如果搜尋所尋找的兩個相符項目,則會傳回較短的 ID。例如,如果 0x0101 是引數,此集合包含 0x010109 和 0x01010901,方法會傳回 0x010109。

備註

使用這個方法來判斷集合是否包含已知內容類型的子系。請記住,不過當站台的內容類型複製到清單中,在清單中的內容型別取得新的內容型別 ID 在下列表單中。

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

如需詳細資訊,請參閱Content Type IDs

提示

如果您想要知道到處都使用整個網站集合的內容型別,呼叫GetUsages方法。

Examples

下列範例會逐一查看網站中的清單,並決定每個清單的內容型別集合包含指定的內容類型的子代的主控台應用程式。

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);
      }
   }
}

應用程式是列印下列輸出到主控台。

The Tasks list uses the content type.

Press ENTER to continue...

請參閱

參照

SPContentTypeCollection class

SPContentTypeCollection members

Microsoft.SharePoint namespace

GetUsages

其他資源

Introduction to Content Types

Site and List Content Types

Base Content Type Hierarchy