Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 10
1
.NET 4.x

List<>: сравнение содержимого и дополнительные условия исключения повторного сравнения

17.04.2012, 23:23. Показов 917. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте

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

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
foreach (DirectSize addsOriginal in checkList)
                {
                    if (!listFile.Contains(addsOriginal.adds))
                    {
                        listFile.Add(addsOriginal.adds);
                    }
                    foreach (DirectSize addsCopy in checkList)
                    {
                        if(addsOriginal.adds != addsCopy.adds && !listFile.Contains(addsCopy.adds))
                        {
                            // код программы
                        }
                    }
                }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2012, 23:23
Ответы с готовыми решениями:

Сравнение содержимого двух List - ов
Проблема вот в чем, есть два List - a, только у одного размерность на много больше другого, как...

Добавление содержимого List к другому List
Здравствуйте уважаемые. Имеется коллекция: List&lt;Product&gt; tempListProducts = new List&lt;Product&gt;();...

Дополнительные условия для timer
Здравствуйте, у меня есть таймер, который отсчитывает допустим 5 секунд и перезапускается. В этом...

Добавление данных в БД ajax (дополнительные условия)
Добавляю данные через ajax в базу. Сначала вызывается JS функция: function addComment(login,...

4
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
18.04.2012, 09:39 2
Побольше бы кода, в заголовке написано про List<>, сравнение содержимого... код, пжлста! Может, из-за недостатка кода, я чего-то не понимаю, но, по-моему, второй цикл и проверка вообще не нужны, вот так:
C#
1
2
3
4
5
6
7
8
foreach (DirectSize addsOriginal in checkList)
{
    if (!listFile.Contains(addsOriginal.adds))
    {
        listFile.Add(addsOriginal.adds);
    }
    // код программы
}
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
18.04.2012, 10:49 3
Цитата Сообщение от tezaurismosis Посмотреть сообщение
второй цикл и проверка вообще не нужны
Второй цикл находится в методе Contains.

Если нужно избежать повторных обходов, то для заполнения можно использовать коллекции на основе хэш-таблиц, например HashSet, а потом копировать все элементы оттуда в список.
0
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 10
18.04.2012, 14:09  [ТС] 4
C#
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
public void PreparationFiles(List<DirectSize> checkList)
        {
            try
            {
 
                foreach (DirectSize addsOriginal in checkList) // первый проход по листу
                {
                    if (!listFile.Contains(addsOriginal.adds)) // добавление переменной в отдельный лист
                    {                                    // для исключения повторного сравнения
                        listFile.Add(addsOriginal.adds);
                    }
                    foreach (DirectSize addsCopy in checkList) // второй проход по листу
                    {
                        SearchFiles(listFile, addsOriginal, addsCopy);
                    }
 
                }
               
                */ код программы */
 
            }
            catch (Exception e)
            {
                Console.WriteLine("The process failed: {0}", e.ToString());
            }
        }
0
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
18.04.2012, 14:56 5
Цитата Сообщение от kolorotur Посмотреть сообщение
Второй цикл находится в методе Contains
Цитата Сообщение от eksted Посмотреть сообщение
foreach (DirectSize addsCopy in checkList) // второй проход по листу
Не о том втором (вложенном) цикле велась речь, что в методе Contains, а о том что в коде.
0
18.04.2012, 14:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2012, 14:56
Помогаю со студенческими работами здесь

алгоритм сравнения содержимого PDF/A
Задача такова. Есть документ в формате PDF/A, он отправляется к внешнему пользователю там...

Условия сравнения чисел - возраст человека
Помогите решить задание. Задание &quot; нужно создать батник, чтобы выводил, если пол мужской до 15...

Макрос сравнения содержимого двух ячеек
Простите за столь простой вопрос Есть: в листе exel при изменении даты в ячейке с2 и нажатии...

Копирование файлов на основе результатов сравнения содержимого каталогов
Добрый день! Прошу помощи в написании батника со следующим функционалом: Есть три папки A, B,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru