c#中DataTable转List的2种方法示例

1. DataTable转List的第一种方法

DataTable是C#中非常常用的数据结构,而有时候我们需要将DataTable转换为List进行操作。下面我们介绍一种简单的方法来实现这个转换。

步骤1:创建一个源DataTable

首先,我们需要创建一个包含数据的源DataTable。这个DataTable可以来自数据库查询,或者其他数据源。

DataTable dt = new DataTable();

dt.Columns.Add("ID", typeof(int));

dt.Columns.Add("Name", typeof(string));

dt.Columns.Add("Age", typeof(int));

dt.Rows.Add(1, "John", 25);

dt.Rows.Add(2, "Mary", 30);

dt.Rows.Add(3, "Tom", 28);

在这个示例中,我们创建了一个包含三个列(ID、Name、Age)的DataTable,并添加了三行数据。

步骤2:创建目标List类型

为了将DataTable转换为List,我们需要创建一个与数据结构相匹配的目标List类型。在这个示例中,我们创建一个名为Person的类,与DataTable对应的结构相同。

public class Person

{

public int ID { get; set; }

public string Name { get; set; }

public int Age { get; set; }

}

Person类包含与源DataTable相同的三个属性(ID、Name、Age)。

步骤3:将DataTable转换为List

现在,我们可以通过遍历源DataTable的每一行,并将其转换为Person对象,然后添加到目标List中。

List<Person> personList = new List<Person>();

foreach (DataRow row in dt.Rows)

{

Person person = new Person();

person.ID = Convert.ToInt32(row["ID"]);

person.Name = row["Name"].ToString();

person.Age = Convert.ToInt32(row["Age"]);

personList.Add(person);

}

在这个示例中,我们遍历了源DataTable的每一行,并使用Convert类将每列的值转换为对应类型的属性值,并将Person对象添加到目标List中。

步骤4:使用转换后的List进行操作

现在,我们可以使用转换后的List进行各种操作,比如对数据进行筛选、排序等。

foreach (Person person in personList)

{

Console.WriteLine("ID: " + person.ID);

Console.WriteLine("Name: " + person.Name);

Console.WriteLine("Age: " + person.Age);

Console.WriteLine();

}

在这个示例中,我们遍历了转换后的List,并输出了每个Person对象的属性值。

2. DataTable转List的第二种方法

除了上述方法之外,还可以使用LINQ查询来将DataTable转换为List。

步骤1:创建源DataTable

首先,我们需要创建一个包含数据的源DataTable,与第一种方法相同。

步骤2:创建目标List类型

同样,我们需要创建一个与数据结构相匹配的目标List类型,与第一种方法相同。

步骤3:使用LINQ查询进行转换

使用LINQ查询时,我们可以通过使用var关键字和query关键字来实现对DataTable的查询和转换操作。

List<Person> personList = (from DataRow row in dt.Rows

select new Person

{

ID = Convert.ToInt32(row["ID"]),

Name = row["Name"].ToString(),

Age = Convert.ToInt32(row["Age"])

}).ToList();

在这个示例中,我们使用LINQ查询从源DataTable的每一行中创建一个Person对象,并将结果转换为List。

步骤4:使用转换后的List进行操作

同样,我们可以使用转换后的List进行各种操作,与第一种方法相同。

总结

本文介绍了两种将DataTable转换为List的方法。第一种方法是通过遍历源DataTable的每一行,并将每一行的数据转换为目标List类型的对象。第二种方法是使用LINQ查询来实现转换操作。无论是哪种方法,都可以将DataTable转换为List,方便后续的数据操作。

在使用这些方法时,需要注意源DataTable和目标List类型的数据结构要相匹配,以确保数据的准确转换和使用。

以上就是本文对C#中DataTable转List的两种方法的详细介绍,希望对你有所帮助。

后端开发标签