Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按linq降序排列datagridview_C#_Linq - Fatal编程技术网

C# 按linq降序排列datagridview

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

我试图订购datagridview,但无法订购。在web上,我发现并修改了以下内容:

 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();