progs.biz  
Начало>VB.NET>Основы>Урок 53
C#
VB.NET
Visual C++.NET
ASP.NET
Visual C++ 6
WinAPI
C/C++
Delphi
C++ Builder
Java
SQL
PHP
DirectX
Visual Basic 6.0
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

Б. Ивьен и др. Visual Basic .NET. Библия пользователя
Б. Ивьен и др. Visual Basic .NET. Библия пользователя
Заказать на Озоне



Яндекс-цитирования

Основы VB.NET
Урок 53. Использование собственных критериев для отбора в классе List

Часто нам надо найти некоторый элемент списка List (и, возможно, что-то с ним сделать), при этом критерий поиска наш собственный. Одно дело, если мы точно знаем, что ищем (например, элемент списка с определенным значением), и совсем другое дело, если нам надо найти некоторый элемент, удовлетворяющий некоторому условию.

Вот пример:

        Sub Main()
        Dim list As List(Of Integer)
        Dim n As Integer
        list = New List(Of Integer)
        'Добавление элементов в список.
        list.Add(122)
        list.Add(4)
        list.Add(22)

        'Находим первое элемент, удовлетворяющий нашему критерию.
        Dim n As Integer
        n = list.Find(AddressOf MyMatch)
        Console.WriteLine("n = " + n.ToString())
    End Sub
    
    'Метод, определяющий критерий нашего для поиска нашего элемента.
    Private Function MyMatch(ByVal p As Integer) As Boolean
        If 10 > p And p > -10 Then
            Return True
        Else
            Return False
        End If
    End Function

В этом примере мы ищем первый элемент нашего списка из целых, причем искомый элемент должен быть в пределах от -10 до +10.

Ключевое в этом примере - это определение метода, задающего наш критерий. У нас это метод MyMatch. Он дожен иметь определенную сигнатуру - параметр целого типа и возвращаемое значение типа boolean. И именно имя этого метода (с ключевым словом AddressOf) мы и используем как параметр предопределенного в классе List метода Find.

Выведет указаный фрагмент число 4 - это первое число, удовлетворяющее критерию нашего метода MyMatch.

По такой же модели действуют и некоторые другие методы класса List - например, FindAll или RemveAll.

Рассылки нашего сайта на Subscribe.Ru
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


 
 
Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2008 сайт progs.biz
© 2002-2008 Игорь Алексеев