ASP.NET GridView 列表 headers

ASP.NET GridView to List with headers

我想将我的 GridView 转换为一个列表,其中 headers 作为第一行。

这可以将我的 GridView 转换为列表而不 headers。

var Result = GridView.Rows.OfType<GridViewRow>().Select(
                        r => r.Cells.OfType<TableCell>().Select(c => c.Text).ToArray()).ToList();

我正在尝试用 headers 将其转换回来。

var myorgitem = GridView.Rows.OfType<GridViewRow>().Select(
                    r => r.Cells.OfType<TableCell>().ToDictionary(
                        c => ????????????????????, c => (c.Text ?? "").ToString())).ToList();

谢谢!

这暂时可行,但我希望它更短、更高效。这会将任何 Gridview 转换为以 headers 作为第一行的列表。

protected List<string[]> GridViewToList(GridView gv)
    {
        var mylist = gv.Rows.OfType<GridViewRow>().Select(
                    r => r.Cells.OfType<DataControlFieldCell>().Select(
                        c => c.ContainingField.HeaderText).ToArray()).ToList();
        if (mylist.Count > 1)
            mylist.RemoveRange(1, mylist.Count - 1);

        mylist.AddRange(gv.Rows.OfType<GridViewRow>().Select(
                    r => r.Cells.OfType<DataControlFieldCell>().Select(c => c.Text).ToArray()).ToList());
        return mylist;
    }