public static IrisDataItem FromCommaSeparatedString(string data) { var parts = data.Split(','); if (parts.Length != FieldsCount) { throw new InvalidOperationException(); } var result = new IrisDataItem(); if (double.TryParse(parts[SepalLengthIndex].Replace('.', ','), out double value)) { result.SepalLength = value; } if (double.TryParse(parts[SepalWidthIndex].Replace('.', ','), out value)) { result.SepalWidth = value; } if (double.TryParse(parts[PetalLengthIndex].Replace('.', ','), out value)) { result.PetalLength = value; } if (double.TryParse(parts[PetalWidthIndex].Replace('.', ','), out value)) { result.PetalWidth = value; } result.ClassName = parts[ClassNameIndex]; return(result); }
public IrisDataReader(string fileName) { using (var input = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var reader = new StreamReader(input)) { cache = new Dictionary <int, IrisDataItem>(); int index = 0; while (!reader.EndOfStream) { var data = reader.ReadLine(); if (!string.IsNullOrWhiteSpace(data)) { cache.Add(index++, IrisDataItem.FromCommaSeparatedString(data)); } } } }