Is there any way of optimizing this code?private void ModifyDataTable(DataTable dt){    if (dt != null)    {        bool b_dataValue = false;        decimal rowreport_data0Sum, rowreport_data1Sum, rowreport_data2Sum, rowreport_data3Sum, rowreport_data4Sum;        rowreport_data0Sum = rowreport_data1Sum = rowreport_data2Sum = rowreport_data3Sum = rowreport_data4Sum = 0;        foreach (DataRow row in dt.Rows)        {            if (row.ItemArray[1].ToString() == $150,000 & Over || row.ItemArray[1].ToString() == $150,000 - $199,999 || row.ItemArray[1].ToString() == $200,000 - $299,999 || row.ItemArray[1].ToString() == $300,000 & Over)            {                rowreport_data0Sum += GetRowValue(row, report_data0);                rowreport_data1Sum += GetRowValue(row, report_data1);                rowreport_data2Sum += GetRowValue(row, report_data2);                rowreport_data3Sum += GetRowValue(row, report_data3);                rowreport_data4Sum += GetRowValue(row, report_data4);            }        }        if (dt.Columns.Count > 0)        {            foreach (DataRow row in dt.Rows)            {                if (row.ItemArray[1].ToString() == $150,000 & Over)                {                    foreach (DataColumn col in dt.Columns)                    {                        if ((col.ColumnName == report_data0) || (col.ColumnName == report_data1) || (col.ColumnName == report_data2) || (col.ColumnName == report_data3) || (col.ColumnName == report_data4))                        {                            if (!row.IsNull(col))                            {                                b_dataValue = true;                                if (b_dataValue)                                {                                    if (col.ColumnName == report_data0) row[col] = rowreport_data0Sum + %;                                    else if (col.ColumnName == report_data1) row[col] = rowreport_data1Sum + %;                                    else if (col.ColumnName == report_data2) row[col] = rowreport_data2Sum + %;                                    else if (col.ColumnName == report_data3) row[col] = rowreport_data3Sum + %;                                    else if (col.ColumnName == report_data4) row[col] = rowreport_data4Sum + %;                                }                                else                                {                                    dt.Rows.Remove(row);                                }                            }                        }                    }                }            }            if (b_dataValue)            {                for (int i = dt.Rows.Count - 1; i >= 0; i--)                {                    DataRow row = dt.Rows[i];                    if (row.ItemArray[1].ToString() == $150,000 - $199,999 || row.ItemArray[1].ToString() == $200,000 - $299,999 || row.ItemArray[1].ToString() == $300,000 & Over)                    {                        dt.Rows.Remove(row);                    }                }            }        }    }}
Modifying a data table of report data
c#