/// <summary> /// Заполняет список объектов Box /// </summary> /// <param name="boxes">Ссылка на список</param> /// <param name="n">Количество элементов для добавления</param> private static void GenerateListOfKorobochek(EKRLib.Collection <Box> boxes, int n) { while (boxes.Count != n + 1) { try { boxes.Add(GenerateBox()); } catch (ArgumentException e) { Console.WriteLine($"Исключение при создании коробочки: {e.Message}"); continue; } } }
/// <summary> /// Сериализует список объектов Box в Json /// </summary> /// <param name="boxes">Список объектов</param> private static void SerializeKorobochki(EKRLib.Collection <Box> boxes) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(boxes.GetType()); try { using (var sw = new FileStream(writePath, FileMode.Create)) { serializer.WriteObject(sw, boxes); } } catch (IOException e) { Console.WriteLine($"Ошибка ввода/вывода при записи в файл: {e.Message}"); } catch (Exception e) { Console.WriteLine($"Ошибка при записи в файл: {e.Message}"); } }
static void Main(string[] args) { // Цикл повтора решения. do { EKRLib.Collection <Box> boxes = new EKRLib.Collection <Box>(); int n = ReadInt("Введите количество элементов коллекции: "); GenerateListOfKorobochek(boxes, n); foreach (var box in boxes) { Console.WriteLine(box); } SerializeKorobochki(boxes); Console.WriteLine("Для выхода нажмите ESC..."); } while (Console.ReadKey(true).Key != ConsoleKey.Escape); }
static void Main(string[] args) { // Цикл повтора решения. do { var boxes = new EKRLib.Collection <Box>(); boxes = DeserializeKorobochki(boxes); //linq1 Console.WriteLine("\t = LINQ 1 ="); LinqQueryMaxDimensionOverThreeOrderByMaxDimension(boxes); //linq2 Console.WriteLine("\t = LINQ 2 ="); LinqQueryGroupByWeight(boxes); //linq3 Console.WriteLine("\t = LINQ 3 ="); LinqQueryListOfMaxWeightItems(boxes); Console.WriteLine("Для выхода нажмите ESC..."); } while (Console.ReadKey(true).Key != ConsoleKey.Escape); }