Выборка и добавление данных из коллекции - C#
Формулировка задачи:
Добрый день, очень простой вопрос!
есть две таблицы (для простоты я опишу их как c# обьекты):
Мне надо проверить quantities на наличие всех номиналов (Denomination) из denominations. И если номинала нету добавить его и с нулевым количеством.
То есть результат должен быть:
Сейчас есть:
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} };
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} };
Как это проще всего сделать?
Решение задачи: «Выборка и добавление данных из коллекции»
textual
Листинг программы
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 }); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д