C# LINQ操作GridView

C# LINQ操作GridView,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个填充的GridView ID Name City 1 Bobby AAA 2 Laura BBB 3 Ilisha CCC 我想得到一个可枚举的集合,如下所示 var Query= from p in GridView1.Rows select new { User_ID=p.ID,User_Name=p.Name,User_City=p.City }.ToList(); 如何得到它 提前感谢。如果您试图使用网格行表示的实际对象,则需要访问该行

我有一个填充的GridView

ID  Name    City
1   Bobby   AAA
2   Laura   BBB
3   Ilisha  CCC
我想得到一个可枚举的集合,如下所示

var  Query= from p in GridView1.Rows 
   select new { User_ID=p.ID,User_Name=p.Name,User_City=p.City }.ToList();
如何得到它


提前感谢。

如果您试图使用网格行表示的实际对象,则需要访问该行的
DataItem
属性

var query = from p in GridView1.Rows.Select(r => r.DataItem as YourDataType)
            select new 
            { 
                User_ID=p.ID,
                User_Name=p.Name,
                User_City=p.City 
            }.ToList()

YourDatatype
这里表示您希望网格绑定到的任何类型的对象)。

您的查询是正确的


唯一的建议是尝试使用绑定到gridview的原始源,而不是依赖gridview。DataSource要获取可枚举集合,只需将GridViewRowCollection强制转换为IEnumerable

 IEnumerable<GridViewRow> rows = GridView1.Rows.Cast<GridViewRow>()
IEnumerable rows=GridView1.rows.Cast()

我刚刚遇到了这个问题,你知道我们为什么首先要投下这个吗
GridViewRowCollection
继承自
IEnumerable
。难道我们不能直接
LINQ
吗?