SiteMapNodeCollection.IndexOf(SiteMapNode) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Проводит поиск указанного объекта SiteMapNode и затем возвращает индекс (с отсчетом от нуля) первого найденного в коллекции экземпляра.
public:
virtual int IndexOf(System::Web::SiteMapNode ^ value);
public virtual int IndexOf (System.Web.SiteMapNode value);
abstract member IndexOf : System.Web.SiteMapNode -> int
override this.IndexOf : System.Web.SiteMapNode -> int
Public Overridable Function IndexOf (value As SiteMapNode) As Integer
Параметры
- value
- SiteMapNode
Объект SiteMapNode, который требуется найти в коллекции SiteMapNodeCollection.
Возвращаемое значение
Индекс (с нуля) первого вхождения параметра value
, если оно найдено в коллекции SiteMapNodeCollection; в противном случае -1.
Примеры
В следующем примере кода показано, как использовать Contains методы SiteMapNodeCollection и IndexOf класса . Код проверяет два поставщика, AspNetXmlSiteMapProvider
и MyXmlSiteMapProvider
, на наличие дочерних узлов корневого узла, которые являются дубликатами.
String providername1 = "AspNetXmlSiteMapProvider";
String providername2 = "MyXmlSiteMapProvider";
SiteMapProviderCollection providers = SiteMap.Providers;
if (providers[providername1] != null && providers[providername2] != null)
{
SiteMapProvider provider1 = providers[providername1];
SiteMapProvider provider2 = providers[providername2];
SiteMapNodeCollection collection1 = provider1.RootNode.ChildNodes;
SiteMapNodeCollection collection2 = provider2.RootNode.ChildNodes;
int matches = 0;
foreach (SiteMapNode node in collection1)
{
if (collection2.Contains(node))
{
Response.Write("Match found at " +
providername1 + ", index = " +
collection1.IndexOf(node) + " with " +
providername2 + ", index = " +
collection2.IndexOf(node) + ".<br />");
matches++;
}
}
Response.Write("Number of matches found = " +
matches.ToString() + ".");
}
else
{
Response.Write(providername1 + " or " +
providername2 + " not found.");
}
Dim providername1 As String = "xAspNetXmlSiteMapProvider"
Dim providername2 As String = "MyXmlSiteMapProvider"
Dim providers As SiteMapProviderCollection = SiteMap.Providers
If Not (providers(providername1) Is Nothing) AndAlso Not (providers(providername2) Is Nothing) Then
Dim provider1 As SiteMapProvider = providers(providername1)
Dim provider2 As SiteMapProvider = providers(providername2)
Dim collection1 As SiteMapNodeCollection = provider1.RootNode.ChildNodes
Dim collection2 As SiteMapNodeCollection = provider2.RootNode.ChildNodes
Dim matches As Integer = 0
Dim node As SiteMapNode
For Each node In collection1
If collection2.Contains(node) Then
Response.Write("Match found at " & _
providername1 & ", index = " & _
collection1.IndexOf(node) & " with " & _
providername2 & ", index = " & _
collection2.IndexOf(node) & ".<br />")
matches += 1
End If
Next node
Response.Write("Number of matches found = " & _
matches.ToString() + ".")
Else
Response.Write(providername1 & " or " & _
providername2 & " not found.")
End If
Комментарии
Метод IndexOf определяет равенство путем вызова Object.Equals метода .