public List <LostProduct> LostProductsByArea; // Продукты, не имеющие соответсвия с направлениями // Правильно было бы сократить шесть этих методов до трёх, так как три пары практически идентичны, // но такой код кажется более понятным, хоть он и выглядит объёмным public void VendorsFilling(TechBase techBase) { Vendors = new Dictionary <string, int>(); List <string> vendorsList = new List <string>(); foreach (DataRow row in techBase.techBaseTable.Rows) { if ((string)row[0] != "") { vendorsList.Add((string)row[0]); // В первом столбце вендоры } } vendorsList = vendorsList.Distinct().ToList(); foreach (string vendor in vendorsList) { Vendors.Add(vendor, 0); } }
public void AreasFilling(TechBase techBase) { Areas = new Dictionary <string, int>(); List <string> areasList = new List <string>(); foreach (DataRow row in techBase.techBaseTable.Rows) { try // возможно исключение "нельзя привести DBNull к string" { if ((string)row[2] != "") // В третьем столбце направления { areasList.Add((string)row[2]); // В третьем столбце направления } } catch (Exception) { } } areasList = areasList.Distinct().ToList <string>(); // с помощью Distinct() отбрасываем повторяющиеся значения foreach (string area in areasList) { Areas.Add(area, 0); } }