powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Пересечение массивов: функция
5 сообщений из 5, страница 1 из 1
Пересечение массивов: функция
    #34448804
Mbus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Есть ли стандартная функция, возвращающая пересечение 2х одномерных массивов?
...
Рейтинг: 0 / 0
Пересечение массивов: функция
    #34450385
Mbus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все молчат..нету значит...
Вот написала, вроде работает....
Может кто получше вариант предложит?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Function FieldsCross(ar1() As Variant, ar2() As Variant)

   Dim arF() As Variant
   Dim ar(), br() As Variant
   Dim l1, l2 As Integer
   Dim i As Integer
   
   l1 = UBound(ar1)
   l2 = UBound(ar2)
   
   If (l1 >= l2) Then
       ar = ar1
       br = ar2
       ReDim Preserve arF( 0  To l2) 
   Else
       ar = ar2
       br = ar1
       ReDim Preserve arF( 0  To l1) 
   End If
   
   i =  0 
   For Each a In ar
    For Each b In br
        If (a = b) Then
            arF(i) = a
            i = i +  1 
        End If
    Next
   Next

   i = i -  1 
   ReDim Preserve arF( 0  To i) 
   FieldsCross = arF
   
End Function
...
Рейтинг: 0 / 0
Пересечение массивов: функция
    #34450456
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если вы работаете в любой SQL-92 совместимой базе данных, то зацените оператор JOIN
...
Рейтинг: 0 / 0
Пересечение массивов: функция
    #34450464
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас здесь:

Dim l1, l2 As Integer

переменная l1 по умолчанию описана как Variant
...
Рейтинг: 0 / 0
Пересечение массивов: функция
    #34450828
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного OFF, но все же.
В 2007-й студии появился LINQ - такая технология, которая позволяет писать запросы к массивам и коллекциям. Примерно то, о чем говорил Konst_One.
Пример для C#:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public void Linq50() {
    int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
    int[] numbersB = { 1, 3, 5, 7, 8 };
    
    var commonNumbers = numbersA.Intersect(numbersB);
    
    Console.WriteLine("Common numbers shared by both arrays:");
    foreach (var n in commonNumbers) {
        Console.WriteLine(n);
    }
}
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Пересечение массивов: функция
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]