#.net #asp.net #linq
#.net #asp.net #linq
Вопрос:
Q:
У меня есть DataTable , я хочу получить данные в соответствии с некоторым условием. ( Where()
)
MyTable.Select().Where()
Как это сделать, если условие (тип = 0).
Ответ №1:
Вы можете использовать LINQ:
IEnumerable<DataRow> rows = MyTable.AsEnumerable()
.Where(row => row.Field<int>("type") == 0);
Комментарии:
1. тогда, если я хочу получить определенное значение поля в этой строке, как его получить?
2. Вы можете взять одну из строк (например,
rows.First()
) и записатьrow.Field<SomeType>("FieldName")
3.
IEnumerable<DataRow> rows = TableList.AsEnumerable().Where(row => row.Field<int>("StudentCode") == int.Parse(e.Row.Cells[0].Text));
4. но я получаю, что указанное приведение недопустимо.
5. Это означает, что ваше поле не является
int
.
Ответ №2:
Это должно быть то, что вы ищете:
var query = from r in dataset.Tables[0].AsEnumerable()
where r.Field<int>("Type") == 0
select new
{
r.Field<string>(“Column1”),
r.Field<string>(“Column2”),
r.Field<string>("ColunmEtc")
}