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
)
參數
contentTypeId
Type: Microsoft.SharePoint.SPContentTypeId以符合內容的型別 ID。
傳回值
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 members
Microsoft.SharePoint namespace