public static List<FormatInfo> TemplateToFormatInfoList(string template) { var tempDict = new List<FormatInfo>(); var templateIndex = 0; if (char.IsDigit(template[templateIndex])) { var fInfo = new FormatInfo() { FormatType = 'b' }; var ctBuf = ""; while (templateIndex < template.Length && char.IsDigit(template[templateIndex])) { ctBuf += template[templateIndex++]; } fInfo.ArrLenArg = int.Parse(ctBuf); tempDict.Add(fInfo); } else { while (templateIndex < template.Length) { var ctBuf = ""; var fInfo = new FormatInfo() { FormatType = template[templateIndex++] }; while (templateIndex < template.Length) { if (char.IsDigit(template[templateIndex])) { ctBuf = ""; while (templateIndex < template.Length && char.IsDigit(template[templateIndex])) { ctBuf += template[templateIndex++]; } fInfo.ArrLenArg = int.Parse(ctBuf); } else if (template[templateIndex] == '!') { ctBuf = ""; templateIndex++; while (templateIndex < template.Length && char.IsDigit(template[templateIndex])) { ctBuf += template[templateIndex++]; } fInfo.FormatArgs.Add(int.Parse(ctBuf)); } else if (template[templateIndex] == '(') { ctBuf = ""; templateIndex++; while (templateIndex < template.Length && template[templateIndex] != ')') { ctBuf += template[templateIndex++]; } templateIndex++; fInfo.NumberFormat = ctBuf; } else { break; } } tempDict.Add(fInfo); } } return tempDict; }
public static List <FormatInfo> TemplateToFormatInfoList(string template) { var tempDict = new List <FormatInfo>(); var templateIndex = 0; if (char.IsDigit(template[templateIndex])) { var fInfo = new FormatInfo() { FormatType = 'b' }; var ctBuf = ""; while (templateIndex < template.Length && char.IsDigit(template[templateIndex])) { ctBuf += template[templateIndex++]; } fInfo.ArrLenArg = int.Parse(ctBuf); tempDict.Add(fInfo); } else { while (templateIndex < template.Length) { var ctBuf = ""; var fInfo = new FormatInfo() { FormatType = template[templateIndex++] }; while (templateIndex < template.Length) { if (char.IsDigit(template[templateIndex])) { ctBuf = ""; while (templateIndex < template.Length && char.IsDigit(template[templateIndex])) { ctBuf += template[templateIndex++]; } fInfo.ArrLenArg = int.Parse(ctBuf); } else if (template[templateIndex] == '!') { ctBuf = ""; templateIndex++; while (templateIndex < template.Length && char.IsDigit(template[templateIndex])) { ctBuf += template[templateIndex++]; } fInfo.FormatArgs.Add(int.Parse(ctBuf)); } else if (template[templateIndex] == '(') { ctBuf = ""; templateIndex++; while (templateIndex < template.Length && template[templateIndex] != ')') { ctBuf += template[templateIndex++]; } templateIndex++; fInfo.NumberFormat = ctBuf; } else { break; } } tempDict.Add(fInfo); } } return(tempDict); }