using System.Collections.Generic;
public static void Main()
public static void CalcOdnNorm()
double indOdnVolume = 0.0;
Console.WriteLine("Объем одн на квартиру = " + indOdnVolume);
public static void CalcOdnIncomplex()
Console.WriteLine("Объем одн на квартиру в первом доме = " + vFlat1);
Console.WriteLine("Объем одн на квартиру во втором доме = " + vFlat2);
public static void LinqExercise()
var array = new int[] { 1, 2, 3, 4, 5, 6, 4, 6, 4, 2, 1, 1 };
Console.WriteLine("Число - количество");
var answer = array.Where(x => x % 2 == 0).GroupBy(x => x).OrderByDescending(x => x.Count<int>())
.Select(x => String.Join('-', x.Key, x.Count<int>())).ToList();
Console.WriteLine(String.Join('\n', answer));
public static void LinqFindingTariff()
var tariffs = FillTariffs();
var serviceID = ConstValues.COLD_WATER;
var date = new DateTime(1950, 01, 01);
.SingleOrDefault(x => x.ServiceID == serviceID && x.StartDate <= date && x.EndDate >= date)
catch (NullReferenceException e)
Console.WriteLine($"Не найдено тарифа для услуги с ID = {serviceID} на дату {date}");
catch (InvalidOperationException e)
Console.WriteLine($"Найдено более одного тарифа на одном периоде для услуги с ID = {serviceID} на дату {date}");
Console.WriteLine(String.Concat("ID услуги: ", serviceID, ", Дата: ", date, ", Тариф: ", answer));
private static List<Tariff> FillTariffs()
var tariffs = new List<Tariff>()
ID = 1, ServiceID = ConstValues.COLD_WATER, StartDate = new DateTime(1997, 10, 01),
EndDate = new DateTime(2050, 01, 01), TariffValue = 20.00
ID = 2, ServiceID = ConstValues.COLD_WATER, StartDate = new DateTime(1999, 01, 01),
EndDate = new DateTime(2020, 01, 01), TariffValue = 10.00
ID = 3, ServiceID = ConstValues.HOT_WATER, StartDate = new DateTime(2000, 10, 01),
EndDate = new DateTime(2050, 01, 01), TariffValue = 50.00
ID = 4, ServiceID = ConstValues.HOT_WATER, StartDate = new DateTime(1997, 10, 01),
EndDate = new DateTime(2000, 09, 01), TariffValue = 100.00
ID = 5, ServiceID = ConstValues.ELECTRICITY, StartDate = new DateTime(1997, 10, 01),
EndDate = new DateTime(2050, 01, 01), TariffValue = 25.00
public static void DoubleIntReturn()
public int ID { get; set; }
public int CustomerID { get; set; }
public bool IsDelivered { get; set; }
public string City { get; set; }
public int ID { get; set; }
public int ServiceID { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public double TariffValue { get; set; }
public static class ConstValues
public const int COLD_WATER = 1;
public const int HOT_WATER = 2;
public const int ELECTRICITY = 3;