VB Linq to C # Linq - PullRequest
       18

VB Linq to C # Linq

4 голосов
/ 19 октября 2011

Пожалуйста, помогите мне преобразовать его в эквивалент C #

Dim dtData As DataTable = Session("Data")

Dim aFilters = From oRow In dtData _
Where oRow(i_oColumn.BaseColumnName) IsNot DBNull.Value _
Select sFilter = _
oRow.Field(Of String)(i_oColumn.BaseColumnName).Replace("""", "\""") _
Distinct Order By sFilter

1 Ответ

3 голосов
/ 19 октября 2011

Не проверено, но перевод достаточно прямой (с некоторой прибавкой):

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)

будет яснее

...