Как использовать VB.NET IList (Of T) .Max - PullRequest
1 голос
/ 09 июля 2011

Как использовать функцию IList (Of T) .Max в моем примере ниже?

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()) 

Ответы [ 2 ]

5 голосов
/ 09 июля 2011

ваш код генерирует исключение System.NullReferenceException при вызове myList.add, поскольку он не был инициализирован. Если вы используете List вместо IList, как показано ниже, это работает.

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

Работает нормально, даже если в проект импортирована только система.

5 голосов
/ 09 июля 2011

Вы должны убедиться, что вы import System.Linq, и добавить System.Core.dll в качестве ссылки на ваш проект.

Это потому, что Max - это метод расширения, определенный в классе System.Linq.Enumerable. не определено в System.Collections.Generic.IList(Of T) интерфейсе.

...