Не проверено, но перевод достаточно прямой (с некоторой прибавкой):
DataTable data = (DataTable)Session["Data"];
var filters= (from row in data.AsEnumerable()
where !(row[i_oColumn.BaseColumnName] is DBNull)
let result = (row.Field<string>(i_oColumn.BaseColumnName))
.Replace(@"""",@"\""")
orderby result
select result).Distinct();
Я подозреваю, однако, что:
where !row.IsNull(i_oColumn.BaseColumnName)
будет яснее