public System.Collections.Generic.Dictionary <row_enum, table_row> FilterDistinct(T[] ur_col_list) { var ret_table = new System.Collections.Generic.Dictionary <row_enum, table_row>(); var track_unique = new System.Collections.Generic.Dictionary <string, row_enum>(); foreach (var row_entry in this) { var key_row = new row_enum(); foreach (var col_entry in ur_col_list) { key_row[col_entry] = row_entry[col_entry]; } var str_keyrow = key_row.Format_Table(false); if (track_unique.ContainsKey(str_keyrow) == false) { track_unique.Add(str_keyrow, key_row); ret_table.Add(key_row, new table_row()); } else { key_row = track_unique[str_keyrow]; } ret_table[key_row].Add(row_entry); } return(ret_table); }
public row_enum add_row() { var ret_row = new row_enum(); this.Add(ret_row); return(ret_row); }
public row_enum FirstRow() { row_enum ret_row = new row_enum(); foreach (var row_entry in this) { ret_row = row_entry; break; } return(ret_row); }
public row_enum FirstRow(T ur_col, string ur_text) { var ret_row = new row_enum(); foreach (var row_entry in this) { if (string.Equals(row_entry[ur_col], ur_text)) { ret_row = row_entry; break; } } return(ret_row); }
public row_enum FirstRow(T ur_col, string ur_text, System.Text.StringBuilder ur_notice_message) { var ret_row = new row_enum(); var found_row = false; foreach (var row_entry in this) { if (string.Equals(row_entry[ur_col], ur_text)) { ret_row = row_entry; found_row = true; break; } } if (found_row == false) { ur_notice_message.AppendLine($"Could not find {ur_text} in {ur_col.pname}."); } return(ret_row); }
public void Persist_Read(string ur_persist_path, bool ur_flag_overwrite_rows = true) { if (ur_flag_overwrite_rows) { this.Clear(); } if (System.IO.File.Exists(ur_persist_path)) { using (var stmIN_FILE = new System.IO.StreamReader(ur_persist_path, new System.Text.UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true))) { var header_processed = false; var found_col_list = new System.Collections.Generic.List <T>(); var cur_line = ""; while (stmIN_FILE.EndOfStream == false) { cur_line += stmIN_FILE.ReadLine(); var balanced_quotes = true; for (int CHRSEQ = 0; CHRSEQ < cur_line.Length; CHRSEQ += 1) { if (cur_line[CHRSEQ] == '\"') { balanced_quotes = !balanced_quotes; } } if (balanced_quotes == false) { cur_line += "\n"; } else { var new_row = new row_enum(); if (cur_line.StartsWith("\n")) { cur_line = cur_line.Substring("\n".Length); } if (header_processed == false) { header_processed = true; var any_field_found = false; foreach (var entry in bitbase.CSV_Split(cur_line, '\t')) { T found_key = null; foreach (var cur_key in this.RefKeys()) { if (cur_key.pname == entry) { found_key = cur_key; any_field_found = true; } } found_col_list.Add(found_key); } if (any_field_found == false) { break; } } else if (cur_line.Length > 0) { var found_field_list = bitbase.CSV_Split(cur_line, '\t'); var intEND_BEFORE = found_field_list.Count; if (found_col_list.Count < intEND_BEFORE) { intEND_BEFORE = found_col_list.Count; } for (var COLSEQ = 0; COLSEQ < intEND_BEFORE; COLSEQ++) { var key_entry = found_col_list[COLSEQ]; if (key_entry != null) { new_row[key_entry] = found_field_list[COLSEQ]; } } this.Add(new_row); } cur_line = ""; } } } } }
public DateEnum(row_enum ur_parent_row) { this.parent_row = ur_parent_row; }
public DecimalEnum(row_enum ur_parent_row) { this.parent_row = ur_parent_row; }