using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GroundOrganizer { [Serializable] public class IGE { private string groundType; public int Number { get; set; } /// /// Номер иженерно-геологического элемента /// public string NumIGE { get; set; } /// /// Тип грунта согласно таблицы 5.4 СП 22.13330.2011 /// public string GroundType { get => groundType; set { groundType = value; ChangeTypeGroundIdx(); } } /// /// Плотность грунта для расчетов по 2-й группе предельных сосотояний /// public double RoII { get; set; } /// /// Угол внутреннего трения грунта в градусах для расчетов по 2-й группе предельных сосотояний /// public double FiII { get; set; } /// /// Удельное сцепление для расчетов по 2-й группе предельных сосотояний /// public double CII { get; set; } /// /// Модуль деформации грунта /// public double E { get; set; } /// /// Удельный вес частиц (минеральной части) грунта /// public double Ys { get; set; } /// /// Коэффициент пористости /// public double Ke { get; set; } /// ///Показатель текучести /// public double IL { get; set; } /// /// Наличие водонасыщения /// public bool W { get; set; } /// /// Описание слоя грунта /// public string Description { get; set; } public int GroundTypeIdx { get; private set; } /// /// Типы грунтов согласно таблицы 5.4 СП 22.13330.2011 /// private readonly string[] groundTypes = new string[] { "Крупнообломочные с песчаным заполнителем и пески кроме мелких и пылеватых", "Пески мелкие", "Пески пылеватые маловлажные", "Пески пылеватые влажные насыщенные водой", "Пески рыхлые", "Глинистые, а также крупнообломочные с глинистым заполнителем при IL<=0.25", "Глинистые, а также крупнообломочные с глинистым заполнителем при 0.25 PropsToList() { return new List { Number, NumIGE, Description, RoII, FiII, CII, E, Ys, Ke, IL, W, GroundType, GroundTypeIdx }; } internal void StringToProps(string line, char separator = ';') { string[] src = line.Split(separator); try { Number = Int32.Parse(src[0]); NumIGE = src[1]; Description = src[2]; RoII = double.Parse(src[3]); FiII = double.Parse(src[4]); CII = double.Parse(src[5]); E = double.Parse(src[6]); Ys = double.Parse(src[7]); Ke = double.Parse(src[8]); IL = double.Parse(src[9]); W = bool.Parse(src[10]); GroundType = src[11]; } catch { return; } } internal void ListToProps(List src) { try { Number = (int)(double)src[0]; NumIGE = (string)src[1]; Description = (string)src[2]; RoII = (double)src[3]; FiII = (double)src[4]; CII = (double)src[5]; E = (double)src[6]; Ys = (double)src[7]; Ke = (double)src[8]; IL = (double)src[9]; W = (bool)src[10]; GroundType = (string)src[11]; } catch { return; } } } }