Accord.Statistics.Filters.Selection.Apply C# (CSharp) Method

Apply() public method

Applies the filter to the current data.
public Apply ( DataTable data ) : DataTable
data System.Data.DataTable
return System.Data.DataTable
        public DataTable Apply(DataTable data)
        {
            DataTable table = data.Clone();

            DataRow[] rows = data.Select(Expression, OrderBy);
            foreach (DataRow row in rows)
                table.ImportRow(row);

            return table;
        }

Usage Example

        public void ApplyTest()
        {
            DataTable table = new DataTable("myData");
            table.Columns.Add("Double", typeof(double));
            table.Columns.Add("Integer", typeof(int));
            table.Columns.Add("Boolean", typeof(bool));

            table.Rows.Add(4.20, 42, true);
            table.Rows.Add(-3.14, -17, false);
            table.Rows.Add(21.00, 0, false);

            Selection target = new Selection("[Boolean] = false");
            
            DataTable actual = target.Apply(table);

            Assert.AreEqual("Double", actual.Columns[0].ColumnName);
            Assert.AreEqual("Integer", actual.Columns[1].ColumnName);
            Assert.AreEqual("Boolean", actual.Columns[2].ColumnName);

            Assert.AreEqual(2, actual.Rows.Count);
        }