C#中泛型举例List与DataTable相互转换

C#中的泛型是一种类型参数化的机制,可以轻松创建复用性高、类型安全性强的代码。其中List和DataTable都是常见的泛型集合类型,本文将介绍如何在它们之间相互转换。

List转DataTable

首先,我们需要创建一个List类型的数据源作为例子,这里我们创建一个简单的Person类:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

然后,我们需要创建一个List对象,并添加几个元素:

List<Person> personList = new List<Person>();
personList.Add(new Person { Name = "Alice", Age = 21 });
personList.Add(new Person { Name = "Bob", Age = 22 });
personList.Add(new Person { Name = "Charlie", Age = 23 });

接下来,我们可以使用DataTable的构造函数和列名初始化一个DataTable对象,并根据数据源添加行:

DataTable dataTable = new DataTable();
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("Age", typeof(int));
foreach (Person person in personList)
{
    DataRow row = dataTable.NewRow();
    row["Name"] = person.Name;
    row["Age"] = person.Age;
    dataTable.Rows.Add(row);
}

最后,我们就可以在程序中使用DataTable对象了。以上便是将List转换为DataTable的完整攻略。

DataTable转List

接下来,我们将介绍如何将DataTable转换为List。同样以Person类为例,我们首先需要创建一个空的List

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

然后,我们需要将DataTable中的每一行解析成一个Person对象,并添加到personList中:

foreach (DataRow row in dataTable.Rows)
{
    Person person = new Person();
    person.Name = row["Name"].ToString();
    person.Age = (int)row["Age"];
    personList.Add(person);
}

最后,我们就可以在程序中使用personList对象了。以上便是将DataTable转换为List的完整攻略。

以上两个示例代码可以直接在C#项目中使用,同时我们也需要记得在代码开头引用相应的命名空间。

using System.Collections.Generic; // List<T>
using System.Data; // DataTable, DataRow

希望本文能够对大家有所启示,在日常的编码工作中,能够更好的利用C#泛型集合类型,提高代码的性能和可读性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中泛型举例List与DataTable相互转换 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • C#备忘录模式(Memento Pattern)实例教程

    C#备忘录模式(Memento Pattern)实例教程 备忘录模式(Memento Pattern)是一种行为型设计模式,它允许将一个对象的内部状态保存到一个外部的备忘录对象中,从而可以在需要时将对象恢复到先前的状态。在本篇教程中,我们将介绍C#中备忘录模式的使用方法和实现步骤,并提供两个示例说明。 示例一:备忘录模式的基本使用 步骤一:创建备忘录类 首先…

    C# 2023年6月8日
    00
  • C# DirectoryInfo.GetFiles – 获取目录下的所有文件信息

    DirectoryInfo.GetFiles() 方法是C#文件操作中用于获取目录中所有文件的方法之一。该方法可以返回当前 DirectoryInfo 的所有文件(包括子目录中的文件),并且可以使用模式进行过滤。 DirectoryInfo.GetFiles() 方法返回一个 FileInfo 数组,其中每个文件都表示找到的文件。可以使用 FileInfo …

    C# 2023年4月19日
    00
  • C#多线程之Parallel类的用法

    C#多线程之Parallel类的用法 什么是Parallel类? Parallel类是 .NET Framework 4.0 中引入的一个提供高级多线程支持的类。使用该类能够方便地达到在多核处理器上并行运行代码的目的。Parallel类提供的方法和语法非常简洁易懂,大大提高了多线程编程的效率。 Parallel类的主要方法 Parallel.Invoke方法…

    C# 2023年6月6日
    00
  • C#数组排序的两种常用方法

    下面是关于C#数组排序的两种常用方法的完整攻略。 方法一:使用Array.Sort方法排序 Array.Sort是.NET Framework中的一个静态方法,可以对数组进行升序或降序排列。这个方法的使用非常简单,直接调用即可。 步骤 定义一个数组 int[] numbers = { 5, 2, 1, 3, 4 }; 使用Array.Sort方法对数组进行排…

    C# 2023年6月1日
    00
  • WinForm实现读取Resource中文件的方法

    WinForm实现读取Resource中文件的方法 1. 添加要读取的文件到资源文件中 首先,在Visual Studio的解决方案资源管理器中,右键单击资源文件(例如“Resources.resx”),选择“添加现有项”并选择要添加的文件(例如“test.txt”)。 2. 读取资源文件中的内容 可以使用.NET Framework内置的ResourceM…

    C# 2023年6月1日
    00
  • c# datetime 格式化大全

    当涉及到 c# 的 datetime 格式化时,需要了解一些预定义的格式字符串、定界符和格式说明符。 预定义格式字符串 d 使用短日期格式显示日期:“yyyy/MM/dd” D 使用长日期格式显示日期:“yyyy’年’M’月’d’日’” f 使用长日期格式和短时间格式显示日期时间:“yyyy’年’M’月’d’日’ H:mm” F 使用长日期格式和长时间格式显…

    C# 2023年6月1日
    00
  • 浅谈C#基础之类的访问修饰符

    浅谈C#基础之类的访问修饰符 C#中共有5种访问修饰符,分别为public、private、protected、internal和protected internal。不同的访问修饰符可以在不同的范围内控制类、方法、属性、字段及其他成员的可访问性。 public访问修饰符 public访问修饰符用于指定一个类、方法、属性或字段可以从任何其他类(包括其他项目中…

    C# 2023年5月31日
    00
  • c#简单判断是否是闰年的方法代码

    下面是详细的“c#简单判断是否是闰年的方法代码”的攻略。 确定闰年的规则 闰年是指公历年份除以4余数为0,但除以100余数不为0或除以400余数为0的年份。根据这个规则,我们可以写出一个简单的判断闰年的算法。 C# 代码实现 下面是一个用 C# 实现判断闰年的方法的示例代码: public static bool IsLeapYear(int year) {…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部