In below code I've used it 2 methods of doing this (1 being commented). 

```
protected DataRow[] GetRows(DataTable dataTable, string keyColumn, object KeyValue)
{
    DataRow[] rows = null;

    /*dataTable.DefaultView.RowFilter = "[" + keyColumn + "] Like '%" + keyValue.ToString() + "%'";
    dataTable = dataTable.DefaultView.ToTable();
    rows = dataTable.Select();*/

    rows = dataTable.Select("[" + keyColumn + "] Like '%" + keyValue.ToString() + "%'");

    return rows;
}

```

Is there any faster way to do the same task? This method GetRows is being called for about a thousand number of times; dataTable has 100 000 rows.

The actual BusinessLogic looks like 

```
        public void BusinessLogic()
        {

            foreach (DataRow dRow in dataTableOne.Rows)
            {

                var primaryKey = dRow["PrimaryColumn"];

                DataRow[] rows;
                    rows = GetRows(dataTableTwo,"PrimaryColumn" , primaryKey);

        /*
            Business Logic
        */

        }
        }

```