Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
7 / 7 / 4
Регистрация: 20.06.2012
Сообщений: 129
Записей в блоге: 4
1

Выборка и добавление данных из коллекции

28.03.2014, 17:24. Показов 1159. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, очень простой вопрос!
есть две таблицы (для простоты я опишу их как c# обьекты):
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
    class MoneyQuantities
    {
        public int Id;
        public int Denomination;
        public int Quantity;
    }
 
    class DefaultDenomination
    {
        public int Id;
        public int Denomination;
    }
 
            List<DefaultDenomination> denominations = new List<DefaultDenomination>
            {
                new DefaultDenomination {Id = 1, Denomination = 5},
                new DefaultDenomination {Id = 2, Denomination = 10},
                new DefaultDenomination {Id = 3, Denomination = 20}
            };
 
            List<MoneyQuantities> quantities = new List<MoneyQuantities>
            {
                new MoneyQuantities {Id = 1, Denomination = 10, Quantity = 100},
                new MoneyQuantities {Id = 2, Denomination = 20, Quantity = 200}
            };
Мне надо проверить quantities на наличие всех номиналов (Denomination) из denominations. И если номинала нету добавить его и с нулевым количеством.

То есть результат должен быть:
C#
1
2
3
4
5
6
            List<MoneyQuantities> quantities = new List<MoneyQuantities>
            {
                new MoneyQuantities {Id = 1, Denomination = 10, Quantity = 100},
                new MoneyQuantities {Id = 2, Denomination = 20, Quantity = 200},
                new MoneyQuantities {Id = 3, Denomination = 5, Quantity = 0}
            };
Сейчас есть:

Как это проще всего сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2014, 17:24
Ответы с готовыми решениями:

Выборка данных из вложенной коллекции
Всем привет! Как составить вложенные linq запросы? class Country { public string Name...

Добавление и извлечение данных из коллекции
Доброе время суток. появился вопрос, о том правильно ли я добавил данные в коллекцию? Привожу код....

Delphi и Access выборка, поиск, добавление данных
Добрый день. Давно не работал с Delphi. Да и опыта работы Delphi с БД Access не было. Такая...

Коллекции, выборка
Всем дорого времени суток! Подскажите как возможно реализовать следующее, чтобы быстрее...

1
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
28.03.2014, 18:08 2
У меня сейчас глобальный затуп после недельного перерыва, поэтому не могу довести свою идею до ума, но идея - найти пересечение и использовать приведение:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class MoneyQuantities
{
    public int Id;
    public int Denomination;
    public int Quantity;
 
    public static implicit operator DefaultDenomination(MoneyQuantities money) {
        var denom = new DefaultDenomination();
        denom.Denomination = money.Denomination;
        denom.Id = money.Id;
        return denom;
    }
}
 
class DefaultDenomination
{
    public int Id;
    public int Denomination;
}
 
class Program
{
    static void Main(string[] args) {
        List<DefaultDenomination> denominations = new List<DefaultDenomination>
        {
            new DefaultDenomination {Id = 1, Denomination = 5},
            new DefaultDenomination {Id = 2, Denomination = 10},
            new DefaultDenomination {Id = 3, Denomination = 20}
        };
 
        List<MoneyQuantities> quantities = new List<MoneyQuantities>
        {
            new MoneyQuantities {Id = 1, Denomination = 10, Quantity = 100},
            new MoneyQuantities {Id = 2, Denomination = 20, Quantity = 200}
        };
 
        var defQuantities = quantities.Select(money => (DefaultDenomination)money);
        var lostDenoms = denominations.Except(defQuantities);
 
        foreach (DefaultDenomination d in lostDenoms)
            quantities.Add(new MoneyQuantities {
                Denomination = d.Denomination,
                Id = d.Id,
                Quantity = 0
            });
    }
}
Ужас конечно, но может что-нибудь из этого кода вы извлечёте.
1
28.03.2014, 18:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2014, 18:08
Помогаю со студенческими работами здесь

Выборка элементов коллекции
Необходимо написать библиотеку, которая упростит работу с коллекцией однотипных объектов. Для...

Выборка из коллекции без повторов
Всех приветствую! Есть массив List of String. Для примера пусть в нем 100 строк. Необходимо...

Выборка данных из нескольких таблиц. Аналитическая выборка данных
16 Для каждого отдела выбрать отношение зарплаты и комиссионных сотрудников отдела к объему...

Получение новой коллекции путем фильтрации элементов коллекции находящихся в другой коллекции
Всем привет, нуждаюсь в помощи знатоков) Имеется вот такая иерархия если представить в JSON: {...


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

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