Come Utilizzare VB.NET IList(T).Max

Come faccio a utilizzare il IList(T).Max funzione nel mio esempio qui sotto?

Dim myList as IList(Of Integer)

For x = 1 to 10
    myList.add(x)
Next

'Error: 'Max' is not a member of 'System.Collections.Generic.IList(Of Integer)'
MsgBox(myList.Max()) 
InformationsquelleAutor Steven | 2011-07-08

 

2 Replies
  1. 5

    il codice genera un Sistema.NullReferenceException quando si chiama myList.aggiungere perché non è stato inizializzato. Se si utilizza Lista invece di IList, come illustrato di seguito funziona.

    Imports System.Collections.Generic
    Module Module1
        Sub Main()
    
            Dim myList As New List(Of Integer)
    
            For x = 1 To 10
                myList.Add(x)
            Next
    
            MsgBox(myList.Max())
    
        End Sub
    End Module

    Funziona bene anche se solo il Sistema viene importato nel progetto.

    • Non vedo come il codice funziona senza l’importazione di System.Linq dal List non definisce un Max di metodo.
    • Forse è implicitamente importati. Per esempio, il vbc compilatore esegue con entrambi System.dll e System.Core.dll e forse anche di più, ma non ho provato in modo esplicito riferimento a loro utilizzando la riga di comando.
    • Solo per riferimento, ho trovato questo MODO di domande che descrive che gli spazi dei nomi sono implicitamente importati in VB 2008/2010. Esso comprende il System.Linq spazio dei nomi.
    • Eccellente, che spiega tutto. Grazie per la condivisione di link.
  2. 5

    È necessario assicurarsi che si import System.Linq, e aggiungere il System.Core.dll come riferimento per il progetto.

    Questo perché Max è un metodo di estensione definiti in System.Linq.Enumerable classe. È non definito in System.Collections.Generic.IList(Of T) interfaccia.

Lascia un commento