сортировать данные по полю - PullRequest
3 голосов
/ 23 марта 2012
  var course = from b in DbModle.courses
                            where b.name == "test"
                            select b;

    DataTable dt = new DataTable();
    DataRow dr;
    dt.Columns.Add(new DataColumn("name", typeof(string)));
    dt.Columns.Add(new DataColumn("id", typeof(int)));
    foreach (var course1 in course_university)
    {
        dr = dt.NewRow();
        dr[0] = course1.name;
        dr[1] = course1.id;
        dt.Rows.Add(dr);
    }

Как мне отсортировать DataTable по идентификатору?

Ответы [ 4 ]

5 голосов
/ 23 марта 2012

Попробуйте использовать это:

dt.DefaultView.Sort = "id";
DataView dv = dt.DefaultView;

foreach (var row in dv) {  
   //. . .
}
4 голосов
/ 23 марта 2012

DataTables не могут быть отсортированы напрямую, но вы можете создать DataView таблицы с определенным порядком сортировки.

var view = new DataView(dt) { Sort = "id" };
1 голос
/ 23 марта 2012

Почему бы не отсортировать исходный запрос?

var courses = from c in DbModel.courses
              where c.Name == "test"
              orderby c.ID
              select c;

var dt = new DataTable();
dt.Columns.Add(new DataColumn("name", typeof(string)));
dt.Columns.Add(new DataColumn("id", typeof(int)));

foreach (var course in courses)
{
    var dr = dt.NewRow();
    dr[0] = course1.name;
    dr[1] = course1.id;
    dt.Rows.Add(dr);
}
0 голосов
/ 23 марта 2012

Если вы используете DataTableExtensions и DataRowExtensions:

var view = dt.AsEnumerable().OrderBy(c=>c.Field<int>("id")).AsDataView();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...