public void Filter(string variableName, Operator @operator, bool negation, IEnumerable <string> values) { if (!variables.Contains(variableName)) { throw new ArgumentOutOfRangeException("variableName"); } AssignCompareMultiple(@operator); var index = variables.IndexOf(variableName); DataTableReader dataReader = null; var filteredRows = Content.AsEnumerable().Where(row => compareMultiple(row[index].ToString(), values) != negation); if (filteredRows.Count() > 0) { var filteredTable = filteredRows.CopyToDataTable(); dataReader = filteredTable.CreateDataReader(); } Content.Clear(); if (dataReader != null) { Content.Load(dataReader, LoadOption.PreserveChanges); } Content.AcceptChanges(); }
public void Replace(string columnName, string newValue) { if (!variables.Contains(columnName)) { throw new ArgumentException(string.Format("No column named '{0}' has been found.", columnName)); } var index = variables.IndexOf(columnName); foreach (DataRow row in Content.Rows) { row[index] = newValue; } Content.AcceptChanges(); }
public void FilterDistinct() { DataTableReader dataReader = null; var distinctRows = Content.AsEnumerable().Distinct(System.Data.DataRowComparer.Default); if (distinctRows.Count() > 0) { var distinctTable = distinctRows.CopyToDataTable(); dataReader = distinctTable.CreateDataReader(); } Content.Clear(); if (dataReader != null) { Content.Load(dataReader, LoadOption.PreserveChanges); } Content.AcceptChanges(); }
public void Replace(string columnName, string newValue, Operator @operator, bool negation, IEnumerable <string> values) { if (!variables.Contains(columnName)) { throw new ArgumentException(string.Format("No column named '{0}' has been found.", columnName)); } AssignCompareMultiple(@operator); var index = variables.IndexOf(columnName); foreach (DataRow row in Content.Rows) { if (compareMultiple(row[index].ToString(), values) != negation) { row[index] = newValue; } } Content.AcceptChanges(); }