public static Indicators CalculateByDelimiter(char delimiter, string[][] data, char?quotedChar) { var res = new Indicators(); int totalDelimiters = 0; int lines = 0; List <int> delimiterPerLine = new List <int> (100); foreach (var fileData in data) { foreach (var line in fileData) { if (string.IsNullOrEmpty(line)) { continue; } lines++; var delimiterInLine = 0; if (quotedChar.HasValue) { delimiterInLine = QuoteHelper.CountNumberOfDelimiters(line, delimiter, quotedChar.Value); } else { delimiterInLine = CountNumberOfDelimiters(line, delimiter); } // add count for deviation analysis delimiterPerLine.Add(delimiterInLine); if (delimiterInLine > res.Max) { res.Max = delimiterInLine; } if (delimiterInLine < res.Min) { res.Min = delimiterInLine; } totalDelimiters += delimiterInLine; } } res.Avg = totalDelimiters / (double)lines; // calculate deviation res.Deviation = CalculateDeviation(delimiterPerLine, res.Avg); return(res); }
private Indicators CalculateIndicators(char c, string[][] data) { var res = new Indicators(); int totalDelimiters = 0; int lines = 0; foreach (var fileData in data) { foreach (var line in fileData) { if (string.IsNullOrEmpty(line)) { continue; } lines++; var delimiterInLine = QuoteHelper.CountNumberOfDelimiters(line, c, QuotedChar); if (delimiterInLine > res.Max) { res.Max = delimiterInLine; } if (delimiterInLine < res.Min) { res.Min = delimiterInLine; } totalDelimiters += delimiterInLine; } } res.Avg = totalDelimiters / (double)lines; return(res); }