當前位置: 首頁>>代碼示例>>VB.NET>>正文


VB.NET SortedSet<T>類代碼示例

本文整理匯總了VB.NET中System.Collections.Generic.SortedSet<T>的典型用法代碼示例。如果您正苦於以下問題:VB.NET SortedSet<T>類的具體用法?VB.NET SortedSet<T>怎麽用?VB.NET SortedSet<T>使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了SortedSet<T>類的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的VB.NET代碼示例。

示例1: Module1

' 導入命名空間
Imports System.Collections
Imports System.Collections.Generic
Imports System.IO

Module Module1

    Sub Main()
        Try
            ' Get a list of the files to use for the sorted set.
            Dim files1 As IEnumerable = _
                Directory.EnumerateFiles("\\archives\2007\media", "*", _
                                                          SearchOption.AllDirectories)
            ' Create a sorted set using the ByFileExtension comparer.
            Dim mediaFiles1 As New SortedSet(Of String)(New ByFileExtension)
        
            ' Note that there is a SortedSet constructor that takes an IEnumerable,
            ' but to remove the path information they must be added individually.
            For Each f As String In files1
                mediaFiles1.Add(f.Substring((f.LastIndexOf("\") + 1)))
            Next
            
            ' Remove elements that have non-media extensions. See the 'IsDoc' method.
            Console.WriteLine("Remove docs from the set...")
            Console.WriteLine($"{vbTab}Count before: {mediaFiles1.Count}")
            mediaFiles1.RemoveWhere(AddressOf IsDoc)
            Console.WriteLine($"{vbTab}Count after: {mediaFiles1.Count}")
        
            Console.WriteLine()
            
            ' List all the avi files.
            Dim aviFiles As SortedSet(Of String) = mediaFiles1.GetViewBetween("avi", "avj")
            Console.WriteLine("AVI files:")
            For Each avi As String In aviFiles
                Console.WriteLine($"{vbTab}{avi}")
            Next

            Console.WriteLine()

            ' Create another sorted set.
            Dim files2 As IEnumerable = _
                Directory.EnumerateFiles("\\archives\2008\media", "*", _
                                      SearchOption.AllDirectories)
            Dim mediaFiles2 As New SortedSet(Of String)(New ByFileExtension)
            For Each f As String In files2
                mediaFiles2.Add(f.Substring((f.LastIndexOf("\") + 1)))
            Next
            
            ' Remove elements in mediaFiles1 that are also in mediaFiles2.
            Console.WriteLine("Remove duplicates (of mediaFiles2) from the set...")
            Console.WriteLine($"{vbTab}Count before: {mediaFiles1.Count}")
            mediaFiles1.ExceptWith(mediaFiles2)
            Console.WriteLine($"{vbTab}Count after: {mediaFiles1.Count}")

            Console.WriteLine()

            Console.WriteLine("List of mediaFiles1:")
            For Each f As String In mediaFiles1
                Console.WriteLine($"{vbTab}{f}")
            Next
            
            ' Create a set of the sets.
            Dim comparer As IEqualityComparer(Of SortedSet(Of String)) = _
                SortedSet(Of String).CreateSetComparer()
            Dim allMedia As New HashSet(Of SortedSet(Of String))(comparer)
            allMedia.Add(mediaFiles1)
            allMedia.Add(mediaFiles2)

        Catch ioEx As IOException
            Console.WriteLine(ioEx.Message)
        Catch AuthEx As UnauthorizedAccessException
            Console.WriteLine(AuthEx.Message)
        End Try


    End Sub

    ' Defines a predicate delegate to use
    ' for the SortedSet.RemoveWhere method.
    Private Function IsDoc(s As String) As Boolean
        s = s.ToLower()
        Return s.EndsWith(".txt") OrElse 
                s.EndsWith(".doc") OrElse 
                s.EndsWith(".xls") OrElse
                s.EndsWith(".xlsx") OrElse
                s.EndsWith(".pdf") OrElse
                s.EndsWith(".doc") OrElse
                s.EndsWith(".docx")
    End Function
    
    ' Defines a comparer to create a sorted set
    ' that is sorted by the file extensions.
    Public Class ByFileExtension
        Implements IComparer(Of String)
        Dim xExt, yExt As String

        Dim caseiComp As CaseInsensitiveComparer = _
                            New CaseInsensitiveComparer
        Public Function Compare(x As String, y As String) _
            As Integer Implements IComparer(Of String).Compare
            ' Parse the extension from the file name.
            xExt = x.Substring(x.LastIndexOf(".") + 1)
            yExt = y.Substring(y.LastIndexOf(".") + 1)

            ' Compare the file extensions.
            Dim vExt As Integer = caseiComp.Compare(xExt, yExt)
            If vExt <> 0 Then
                Return vExt
            Else
                ' The extension is the same, 
                ' so compare the filenames. 
                Return caseiComp.Compare(x, y)
            End If
        End Function        
        
    End Class
End Module
開發者ID:VB.NET開發者,項目名稱:System.Collections.Generic,代碼行數:117,代碼來源:SortedSet


注:本文中的System.Collections.Generic.SortedSet<T>類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。