DataTable to List<Class> 在c#中没有for循环[重复]

Posted

技术标签:

【中文标题】DataTable to List<Class> 在c#中没有for循环[重复]【英文标题】:DataTable to List<Class> without for Loop in c# [duplicate] 【发布时间】:2019-11-24 01:35:45 【问题描述】:

这是我的代码部分:(带有 Partial 类)

   partial class Program
        
       static DataTable dt;
        Program()
        
            Initializer();
        
        class DataItem
        
            public int Id  get; set; 
            public string Name  get; set; 
        
        public void Initializer()
        
            dt = new DataTable();
            //Columns Add
            dt.Columns.Add("Id", typeof(int));
            dt.Columns.Add("Name", typeof(string));
            //Row of Data Add
            dt.Rows.Add(1, "Elango");
            dt.Rows.Add(2, "Ampa");
            dt.Rows.Add(3, "Madhu");
                
    

输出方法:

partial class Program
    
        static void Main(string[] args)
        
            Program pg = new Program();
            DataTable dts = dt;
            List<DataItem> dataItems = dt.AsEnumerable().ToList<DataItem> 
         ();
        
    

在这里,我尝试了一些东西。如果有人知道如何将 Datatable 转换为 List,请告诉我。

【问题讨论】:

【参考方案1】:
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System;

public partial class Program
        
       static DataTable dt;
        Program()
        
            Initializer();
        
        class DataItem
        
            public int Id  get; set; 
            public string Name  get; set; 
        
        public void Initializer()
        
            dt = new DataTable();
            //Columns Add
            dt.Columns.Add("Id", typeof(int));
            dt.Columns.Add("Name", typeof(string));
            //Row of Data Add
            dt.Rows.Add(1, "Elango");
            dt.Rows.Add(2, "Ampa");
            dt.Rows.Add(3, "Madhu");
                
    

public partial class Program
    
        public static void Main()
        
            Program pg = new Program();
            DataTable dts = dt;

            List<DataItem> studentList = new List<DataItem>();  

    studentList = (from DataRow dr in dt.Rows  
            select new DataItem()  
              
                Id = Convert.ToInt32(dr["Id"]),  
                Name = dr["Name"].ToString()
            ).ToList();  
        
    

【讨论】:

在上面的例子中对我不起作用,请检查我的代码...... 编辑了代码。 您的说法是正确的。但我想要没有循环的概念。

以上是关于DataTable to List<Class> 在c#中没有for循环[重复]的主要内容,如果未能解决你的问题,请参考以下文章

DataTable转换为List

List转换DataTable

C#DataTable to Dictionary有多个值

C#DataTable(转List /JSON/字典 互转)

c# DataTable转List 和 List转 DataTable

list转换datatable