private string[][] ignoreRowsWithMissingValues(List <MetaColumn> colProp) { List <int> ignoredIndex = new List <int>(); //parse all string data remember row index for missingValues for (int j = 0; j < colProp.Count; j++) { //check if current column ignores row with missing value if (colProp[j].MissingValue == "Ignore" && !colProp[j].IsIngored) { for (int i = 0; i < m_strData.Length; i++) { bool retVal = ColumnData.isMissingValue(m_strData[i][j]); if (retVal) { ignoredIndex.Add(i); } } } } //go through all rows and remove those with remembered index int ignoredRows = ignoredIndex.Distinct().ToList().Count; string[][] filteredData = new string[m_strData.Length - ignoredRows][]; int index = 0; for (int i = 0; i < m_strData.Length; i++) { if (!ignoredIndex.Contains(i)) { filteredData[index] = m_strData[i]; index++; } } return(filteredData); }