Convert DataTable to IEnumerable

前端 未结 8 1615
梦毁少年i
梦毁少年i 2020-11-29 22:50

I am trying to convert a DataTable to an IEnumerable. Where T is a custom type I created. I know I can do it by creating a List but I was thinking if t

8条回答
  •  佛祖请我去吃肉
    2020-11-29 23:44

            PagedDataSource objPage = new PagedDataSource();
    
            DataView dataView = listData.DefaultView;
            objPage.AllowPaging = true;
            objPage.DataSource = dataView;
            objPage.PageSize = PageSize;
    
            TotalPages = objPage.PageCount;
    
            objPage.CurrentPageIndex = CurrentPage - 1;
    
            //Convert PagedDataSource to DataTable
            System.Collections.IEnumerator pagedData = objPage.GetEnumerator();
    
            DataTable filteredData = new DataTable();
            bool flagToCopyDTStruct = false;
            while (pagedData.MoveNext())
            {
                DataRowView rowView = (DataRowView)pagedData.Current;
                if (!flagToCopyDTStruct)
                {
                    filteredData = rowView.Row.Table.Clone();
                    flagToCopyDTStruct = true;
                }
                filteredData.LoadDataRow(rowView.Row.ItemArray, true);
            }
    
            //Here is your filtered DataTable
            return filterData; 
    

提交回复
热议问题