Search code examples
c#linq

IsNumeric check in linq


The following linq

var subjectMarks = (from DataRow row in objDatatable.Rows
                    select Convert.ToDecimal(row["EXM_MARKS"])).Sum();

throws an exception since some row["EXM_MARKS"] has non numeric values like AB etc. How can I get the sum of only numeric ones out of them?


Solution

  • Add where clause that filters out the records that cannot be parsed as decimals. Try:

    decimal dummy;
    
    var subjectMarks = (from DataRow row in objDatatable.Rows
                         where decimal.TryParse(row["EXM_MARKS"], out dummy)
                         select Convert.ToDecimal(row["EXM_MARKS"])).Sum();