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

Есть ли стандартная функция, возвращающая пересечение 2х одномерных массивов?
...
Рейтинг: 0 / 0
10.04.2007, 15:49
    #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
10.04.2007, 16:08
    #34450456
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересечение массивов: функция
если вы работаете в любой SQL-92 совместимой базе данных, то зацените оператор JOIN
...
Рейтинг: 0 / 0
10.04.2007, 16:10
    #34450464
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пересечение массивов: функция
У вас здесь:

Dim l1, l2 As Integer

переменная l1 по умолчанию описана как Variant
...
Рейтинг: 0 / 0
10.04.2007, 17:47
    #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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Пересечение массивов: функция / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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