C# 按linq降序排列datagridview
我试图订购datagridview,但无法订购。在web上,我发现并修改了以下内容:C# 按linq降序排列datagridview,c#,linq,C#,Linq,我试图订购datagridview,但无法订购。在web上,我发现并修改了以下内容: List<DataGridViewRow> q = (from item in dataGridView1.Rows.Cast<DataGridViewRow>() orderby item.Cells[0].Value descending select item).ToL
List<DataGridViewRow> q = (from item in dataGridView1.Rows.Cast<DataGridViewRow>()
orderby item.Cells[0].Value descending
select item).ToList<DataGridViewRow>();
List q=(来自dataGridView1.Rows.Cast()中的项)
orderby项。单元格[0]。值递减
选择项);
但它不起作用,因为我不知道如何将此列表分配给datagridview的数据源
也许,这样做不是正确的方式。在其他项目中,我将datagridview上的数据放在一个列表中,然后在列表上执行linq查询,结果正常。在datagridview中是如何实现的 只需使用
DataGridView.Sort()
方法:
dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Descending);
如果您决定使用LINQ(可能更复杂的排序,或者以其他方式操作数据),最好对原始数据源(即列表)进行操作,就像您之前说过的那样
我不认为你可以用一种通用的方式做你想做的事情,因为数据源
是一个对象
,所以最终你需要将数据源
转换回你最初用来填充数据网格视图
的原始数据类型
List<DataGridViewRow> q = (from item in dataGridView1.Rows.Cast<DataGridViewRow>()
orderby item.Cells[0].Value descending
select item).ToList<DataGridViewRow>();
dataGridView1.DataSource = q.Select(x => x.DataBoundItem).Cast<Employee>().ToList();
是的,这不是最好的例子。很抱歉不管怎样,我能给数据源一个列表吗?@WFgo,欢迎:)
dataGridView1.DataSource = q.Select(x => x.DataBoundItem).ToList();