Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вопрос по random'у 
:(
    Опции темы
derek
Дата 29.10.2006, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.7.2006

Репутация: нет
Всего: нет



вообщем задача такая, есь массив L1,L2,L3. Массивы L1 и L2 заполняются случайными числами. Есть процедура, которая поочередно сравнивает каждое значение обоих массивов, и если значения равны, то это значение записывается в L3...

проблема в следующем, если забить массивы L1,L2 в ручную то все работает, а если массивы L1, L2 забиваются рандомно, то ничего не работает...


вот код забивания массивов рандомом

Код

 Random rnd = new Random();

            for (int i = 0; i < 10; i++)
            {
                L1.Items.Add(rnd.Next(10));
            }

            for (int i = 0; i < 10; i++)
            {
                L2.Items.Add(rnd.Next(10));

            }



а вот код сравнение элементов массивов L1 и L2


Код

for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    if (L1.Items[i] == L2.Items[j])
                    {
                        L3.Items.Add(L1.Items[i]);    
                    }
                
                }
                
            }



P.s. под "массивами" в данном случае имею ввиду listbox

PM MAIL   Вверх
mr.DUDA
Дата 29.10.2006, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Так ведь если массивы заполняются случайными числами от 0 до N, не факт что обязательно найдётся попарное совпадение. Например, в одном массиве не будет числа 4, а в другом - числа 8.

И что вообще означает:
Цитата(derek @  29.10.2006,  20:44 Найти цитируемый пост)
 а если массивы L1, L2 забиваются рандомно, то ничего не работает...


 smile 

Что именно "не работает" ? Поконкретнее.


--------------------
user posted image
PM MAIL WWW   Вверх
derek
Дата 29.10.2006, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.7.2006

Репутация: нет
Всего: нет



mr.DUDA, массивы у меня заполняются не от 0 до N, а от 0 до 10-ти...и самих элементов каждого массива 10. так что там не может не быть хотя бы одного совпадения...
а не работает буквально - нажимаю на кнопку на которую повешен код сравнения L1 и L2 - и как будто я на нее и не нажимал...вообщем эффекта ноль...в то же время - если руками забить ТЕ ЖЕ числа которые при предыдущем запуске сгенерировал рандом - то все работает...

такое ощущение что  в коде заполнения массивов рандомными значениями,в listbox'ы просто добаляются строчки со случайными числами, а item'ам соостветвующие значение не присваиваются...т.е...массив значениями не заполняются - не знаю как это может быть....



Это сообщение отредактировал(а) derek - 29.10.2006, 22:54
PM MAIL   Вверх
Exception
Дата 29.10.2006, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Тьфу ты. С каких пор ListBox называют массивом?! Этим ты всех и запутал.
В ListBox'е хранятся ссылки на объекты. Поэтому, когда ты добавляешь в него число, оно "оборачивается" (boxing) в System.Object и в этом виде добавляется в коллекцию Items. Таким образом, сравнивая два элемента, фактически, ты сравниваешь ссылки на объекты, а не их значения. Используй if ((int)L1[i] == (int)L2[j]), и будет тебе счастье smile .
PM   Вверх
mr.DUDA
Дата 29.10.2006, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(derek @  29.10.2006,  21:54 Найти цитируемый пост)
mr.DUDA, массивы у меня заполняются не от 0 до N, а от 0 до 10-ти..

0..N общий случай для 0..10, мы говорим об одном и том же

Цитата(derek @  29.10.2006,  21:54 Найти цитируемый пост)
и самих элементов каждого массива 10. так что там не может не быть хотя бы одного совпадения...

хотя бы одно будет

Цитата(derek @  29.10.2006,  21:54 Найти цитируемый пост)
а не работает буквально - нажимаю на кнопку на которую повешен код сравнения L1 и L2 - и как будто я на нее и не нажимал...вообщем эффекта ноль...в то же время - если руками забить ТЕ ЖЕ числа которые при предыдущем запуске сгенерировал рандом - то все работает...

оч. странно... чем отличается код, когда int-ы руками забиваются в листбокс, от кода с random-ом ? можно его посмотреть ?

Цитата(Exception @  29.10.2006,  22:27 Найти цитируемый пост)
В ListBox'е хранятся ссылки на объекты. Поэтому, когда ты добавляешь в него число, оно "оборачивается" (boxing) в System.Object и в этом виде добавляется в коллекцию Items. Таким образом, сравнивая два элемента, фактически, ты сравниваешь ссылки на объекты, а не их значения. Используй if ((int)L1[i] == (int)L2[j]), и будет тебе счастье

но другой пример то работает !  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
derek
Дата 30.10.2006, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.7.2006

Репутация: нет
Всего: нет



Цитата(mr.DUDA @  29.10.2006,  23:49 Найти цитируемый пост)
оч. странно... чем отличается код, когда int-ы руками забиваются в листбокс, от кода с random-ом ? можно его посмотреть ?


тут я немного неправильно выразился. под "вводом значений руками" я подразумевал "ввод значений через конструктор"...т.е. кода собственно и не было



Цитата(Exception @  29.10.2006,  23:27 Найти цитируемый пост)
Тьфу ты. С каких пор ListBox называют массивом?! Этим ты всех и запутал.
В ListBox'е хранятся ссылки на объекты. Поэтому, когда ты добавляешь в него число, оно "оборачивается" (boxing) в System.Object и в этом виде добавляется в коллекцию Items. Таким образом, сравнивая два элемента, фактически, ты сравниваешь ссылки на объекты, а не их значения. Используй if ((int)L1[i] == (int)L2[j]), и будет тебе счастье  . 


да это работает...но есть вопрос - что это вообще за метод такой (int)L1[i] - имею ввиду (int) - это ведь не конвертирование, ведь нельзя объект переконвентировать в int...вообщем это работает...но КАК это работает мне не ясно...
PM MAIL   Вверх
Exception
Дата 30.10.2006, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Почему? При выполнении Add мы упаковываем value-тип int (System.Int32) в object (System.Object), а потом приводим object к типу int и распаковываем. По сути, операция приведения - это и есть конвертация.

mr.DUDA, волшебство, однако. Действительно, почему работает ручное заполнение?
PM   Вверх
thomas
Дата 30.10.2006, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



Exception, 
Цитата

Действительно, почему работает ручное заполнение? 


Потому как товарищ derek, сам ответил на свой вопрос 
Цитата

массив значениями не заполняются 


ListBox он заполняет, а где он присваивает значения своим массивам я не увидел.

Он заполняет значениями только listBox L1 L2. А где массивы?


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
mr.DUDA
Дата 30.10.2006, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Когда руками добавляем, в дизайнере - в листбоксе будут строки. А в примере сравниваются числа. Пример вообще не должен работать при таких условиях.


--------------------
user posted image
PM MAIL WWW   Вверх
thomas
Дата 30.10.2006, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



Привет всем.

Мне думается, должно быть так
Код

Random rnd = new Random();
            int getal1, getal2;
            int[] table1 = new int[9];
            int[] table2 = new int[9];
            int[] table3 = new int[9];
            for (int i = 0; i < 10; i++)
            {
                getal1 = rnd.Next(10);
                L1.Items.Add(getal1.ToString());
                table1[i] = getal1;
            }

            for (int i = 0; i < 10; i++)
            {
                getal2 = rnd.Next(10);
                L2.Items.Add(getal2.ToString());
                table2[i] = getal2;
            }

            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    if (table1[i] == table2[j])
                    {
                        L3.Items.Add(table1[i].ToString());
                        table3[i]=table1[i];
                    }

                }

            }



PS извините переменную по фламандски назвал getal=число.  smile 


Это сообщение отредактировал(а) thomas - 30.10.2006, 18:14


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Exception
Дата 31.10.2006, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



mr.DUDA
В том-то и дело!
Как тебе известно, строки - ссылочные объекты, а потому сравнение одинаковых строк будет работать и без приведения типов: ссылки на одинаковые строки будут одинаковыми. А вот для value-типов следует выполнять приведение, так как ссылки всегда будут разными.
Именно поэтому заполнение строк в дизайнере срабатывало.
PM   Вверх
archimed7592
Дата 31.10.2006, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 7
Всего: 93



Цитата(Exception @  31.10.2006,  01:49 Найти цитируемый пост)
Именно поэтому заполнение строк в дизайнере срабатывало.

добавление в дизайнере от программного добавления отличается немногим...если заглянуть в *.designer.cs, то можно увидеть list1.Items.Add ("...")...и что выдаст такой код?
Код
            listBox1.Items.Add("abc");
            listBox2.Items.Add("abc");
            if (listBox1.Items[0] == listBox2.Items[0])
                throw new Exception();
Код
            String s1 = "abc";
            String s2 = "abc";
            listBox1.Items.Add(s1);
            listBox2.Items.Add(s2);
            if (listBox1.Items[0] == listBox2.Items[0])
                throw new Exception();
Код
            String s1 = "abc";
            String s2 = "abcd".Remove(3);
            listBox1.Items.Add(s1);
            listBox2.Items.Add(s2);
            if (listBox1.Items[0] == listBox2.Items[0])
                throw new Exception();
1-исключение, 2-исключение, 3-ок...вывод? виноват string pooling. smile

Это сообщение отредактировал(а) archimed7592 - 31.10.2006, 02:10


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
mr.DUDA
Дата 31.10.2006, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(archimed7592 @  31.10.2006,  01:09 Найти цитируемый пост)
1-исключение, 2-исключение, 3-ок...вывод? виноват string pooling. 

У меня такой же код выдаёт Ok:

Код
using System;
using System.Windows.Forms;

class Program
{
    static void Main()
    {
        ListBox listBox1 = new ListBox();
        ListBox listBox2 = new ListBox();

        listBox1.Items.Add("abc");
        listBox2.Items.Add("abc");

        if (listBox1.Items[0] == listBox2.Items[0])
            Console.Write("ok");
    }
}


хммм ?..  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
archimed7592
Дата 31.10.2006, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 7
Всего: 93



Цитата(mr.DUDA @  31.10.2006,  11:12 Найти цитируемый пост)
У меня такой же код выдаёт Ok:
он у тебя не такой же smile у тебя вместо throw new Exception () стоит Console.WriteLine ("ok") потому и выдаёт OK smile


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
mr.DUDA
Дата 31.10.2006, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(archimed7592 @  31.10.2006,  16:18 Найти цитируемый пост)
он у тебя не такой же  у тебя вместо throw new Exception () стоит Console.WriteLine ("ok") потому и выдаёт OK

Ну это несерьёзно  smile, почему string pooling работает-то ?... К примеру, если абстрагироваться от листбокса (оффтоп пошёл) и запихнуть одинаковые стринговые литералы в два разных object-а, то сравнивать будет корректно. А почему у derek работает сравнение строки с int-ом, я так и не въехал, видимо неправильная у меня трава  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
archimed7592
Дата 31.10.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 7
Всего: 93



Цитата(mr.DUDA @  31.10.2006,  18:30 Найти цитируемый пост)
derek работает сравнение строки с int-ом,
 smile хде такое увидел?
вообще 
Цитата(mr.DUDA @  31.10.2006,  18:30 Найти цитируемый пост)
и запихнуть одинаковые стринговые литералы в два разных object-а,
контрпример:
Код
            String s1 = "abc";
            String s2 = "abcd".Remove(3);
            Object o1 = s1;
            Object o2 = s2;
            Console.WriteLine("s1 = \"{0}\"\ns2 = \"{1}\"\ns1 {2} s2", s1, s2, o1 == o2 ? "==" : "!=");
единственный метод, которым можно проверить равны объекты или нет - это Equals. и при сравнении объектов типа Object оператором == он НЕ вызывается.
Код
            Console.WriteLine("s1 = \"{0}\"\ns2 = \"{1}\"\ns1 {2} s2", s1, s2, o1.Equals(o2) ? "==" : "!=");
выведет что немного иной результат, нежели вариант выше.
другое дело, когда сравниваешь s1 и s2 оператором == там всё ок потому, что его перегружают.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
mr.DUDA
Дата 31.10.2006, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(archimed7592 @  31.10.2006,  16:44 Найти цитируемый пост)
хде такое увидел?

Ну строки со строками...

Цитата(archimed7592 @  31.10.2006,  16:44 Найти цитируемый пост)
контрпример:

Дык, это если присваивать не константную строку а результат действия над строкой (а-ля Remove), то да. Не-константы не интернируются и в пул не попадают. А вот если мы их так:

Код
using System;

class Program
{
    static void Main()
    {
        String s1 = "abc";
        String s2 = string.Intern("abcd".Remove(3));
        Object o1 = s1;
        Object o2 = s2;
        Console.WriteLine("s1 = \"{0}\"\ns2 = \"{1}\"\ns1 {2} s2", s1, s2, o1 == o2 ? "==" : "!=");
    }
}

то совсем другое дело, выведет "s1 == s2"  smile 

P.S. оффтоп пошёл, уважаемые.

Добавлено @ 18:03 
З.Ы. для интернированных строк сравниваются уже не сами строки, а ссылки на объект string.


--------------------
user posted image
PM MAIL WWW   Вверх
archimed7592
Дата 31.10.2006, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 7
Всего: 93



Цитата(mr.DUDA @  31.10.2006,  18:30 Найти цитируемый пост)
 запихнуть одинаковые стринговые литералы в два разных object-а, то сравнивать будет корректно.
Цитата(mr.DUDA @  31.10.2006,  19:00 Найти цитируемый пост)
Дык, это если присваивать не константную строку а результат действия над строкой (а-ля Remove), то да. Не-константы не интернируются и в пул не попадают.
Цитата(mr.DUDA @  31.10.2006,  19:00 Найти цитируемый пост)
З.Ы. для интернированных строк сравниваются уже не сами строки, а ссылки на объект string.
для объектов типа string всегда сравниваются строки (если конечно ссылки не равны...если равны, то сравнивать нечего). для объектов типа object всегда сравниваются ссылки. добавляя строку в пул ты получишь ссылку идентичную s1 и соответственно результат сравнения ссылок будет очевидным.

Цитата(mr.DUDA @  31.10.2006,  19:00 Найти цитируемый пост)
P.S. оффтоп пошёл, уважаемые.
ну ты же модер smile вынеси обсуждение в отдельный тред. вопрос очень интересный на самом деле.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
derek
Дата 21.12.2006, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.7.2006

Репутация: нет
Всего: нет



опять наступаю на грабли listbox'а
почему не работает такой простой код - где я опять тупанул smile ?

Код

for (int i = 5; i <= 0; i--)
            {
                listBox2.Items.Add(listBox1.Items[i]);
            }


ошибки не выдает при компиляции. Просто не работает - ноль эффекта...
PM MAIL   Вверх
VisualProgrammerNET
Дата 21.12.2006, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



не <=, a >=

Я пьяный, могу ошибаться...  smile 


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
derek
Дата 21.12.2006, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.7.2006

Репутация: нет
Всего: нет



так вылетает с ошибкой
ArgumentOutOfRangeException
InvalidArgument=Value of '5' is not valid for 'index'.


PM MAIL   Вверх
archimed7592
Дата 21.12.2006, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 7
Всего: 93



ну тогда for (i = 5 - 1; i >= 0; --i) ...


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
derek
Дата 21.12.2006, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.7.2006

Репутация: нет
Всего: нет



archimed7592, так работает. вообще не думал что ошибка в построении цикла. спасибо
PM MAIL   Вверх
mr.DUDA
Дата 21.12.2006, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(derek @  21.12.2006,  20:24 Найти цитируемый пост)
archimed7592, так работает. вообще не думал что ошибка в построении цикла. спасибо


derek, не сочтите за хамство, но
Код
for (int i = 5; i <= 0; i--)


Означает "давайте будем отсчитывать от 5 до 0(или меньшего) до тех пор, пока у нас меньше или 0", а это ни разу не выполнится. Потому что отсчитывать начинаем от 5. А это больше чем 0. Не пройдёт ни одной итерации цикла. smile



--------------------
user posted image
PM MAIL WWW   Вверх
derek
Дата 21.12.2006, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.7.2006

Репутация: нет
Всего: нет



mr.DUDA, да-да, мне если честно стыдно  smile  smile 
PM MAIL   Вверх
-ser-
Дата 22.12.2006, 05:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 1.2.2005

Репутация: 5
Всего: 13



Цитата(derek @  29.10.2006,  22:54 Найти цитируемый пост)
массивы у меня заполняются не от 0 до N, а от 0 до 10-ти...и самих элементов каждого массива 10. так что там не может не быть хотя бы одного совпадения...


во-первых: заполнение от 0 до 9, если быть точнее.

во-вторых: теоретически совпадения может и не быть вообще, причем вероятность не такая уж и мизерная. Random совсем не гарантирует неповторение одинакового числа, тем более диапазон в нашем случае довольно узок.

в-третьих: если уж хотим сравнивать целые, используя ListBox, то используйте для сравнения хотя бы ListBox.IntegerCollection. Хотя ListBox по большому счету это вообще контрол и он предназначен совсем для других целей. По сути дела началось обсуждение работы самого контрола и вопроса как этим членом расколоть орех.
В нашем случае L1.Items[ i ] это object, давайте тогда и сравнивать объекты как и положено, например
Код
if( Comparer.DefaultInvariant.Compare( L1.Items[ i ], L2.Items[ j ] ) == 0 )
 хоть и это тоже оффтоп и глупость.


--------------------
"Тонкая, однако, работа." 
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0767 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.