List及Datatable用法及其比较

List及Datatable用法及其比较

List的简单使用方法及其例程

使用List的方法实现在控制台输出第一行1-1-1-1,第二行2-2-2-2的效果。


//List的单独使用方法

//个人理解为TaskItem是List每个组中所包含的内容,List相当是一个单位组
List<TaskItem> listTask = new List<TaskItem>();

//实例化每个单位组,并添加内容
TaskItem taskItem = new TaskItem();
taskItem.Task_NO = 1;
taskItem.S_Position = 1;
taskItem.D_Position = 1;
taskItem.Task_Status = 1;

TaskItem taskItem1 = new TaskItem();
taskItem1.Task_NO = 2;
taskItem1.S_Position = 2;
taskItem1.D_Position = 2;
taskItem1.Task_Status = 2;

//将每个单位组taskItem(1)添加至listTask中
listTask.Add(taskItem);
listTask.Add(taskItem1);

for (int i = 0; i < listTask.Count; i++)//for循环一次即在listTask中取出一组(行)数据
{
    string Task_NO = listTask[i].Task_NO.ToString();
    string S_Position = listTask[i].S_Position.ToString();
    string D_Position = listTask[i].D_Position.ToString();
    string Task_Status = listTask[i].Task_Status.ToString();
    Console.WriteLine(string.Format("{0}-{1}-{2}-{3}", Task_NO, S_Position, D_Position, Task_Status));
}

Console.ReadLine();

public class TaskItem//创建实体类
{
    public int Task_IDX;      //任务索引
    public int Task_NO;      //任务号
    public int Task_Status;  //任务状态
    public int S_Position;      //起始位置
    public int D_Position;      //结束位置
}

使用List在控制台输出的结果

DataTable的简单使用方法及其例程

重新新建控制台程序,使用DataTable的方法实现在控制台输出同样第一行1-1-1-1,第二行2-2-2-2的效果。

using System.Data;

DataTable dt = new DataTable();
dt.Columns.Add("Task_NO");
dt.Columns.Add("Task_IDX");
dt.Columns.Add("S_Position");
dt.Columns.Add("D_Position");
dt.Columns.Add("Task_Status");

DataRow dar = dt.NewRow();
dar["Task_NO"] = "1";
dar["Task_IDX"] = "1";
dar["S_Position"] = "1";
dar["D_Position"] = "1";
dar["Task_Status"] = "1";

DataRow dar1 = dt.NewRow();
dar1["Task_NO"] = "2";
dar1["Task_IDX"] = "2";
dar1["S_Position"] = "2";
dar1["D_Position"] = "2";
dar1["Task_Status"] = "2";

dt.Rows.Add(dar);
dt.Rows.Add(dar1);

for (int i = 0; i < dt.Rows.Count; i++)
{
    string va1 = dt.Rows[i]["Task_NO"].ToString();
    string va2 = dt.Rows[i]["Task_IDX"].ToString();
    string va3 = dt.Rows[i]["S_Position"].ToString();
    string va4 = dt.Rows[i]["D_Position"].ToString();
    string va5 = dt.Rows[i]["Task_Status"].ToString();
    Console.WriteLine(string.Format("{0}-{1}-{2}-{3}-{4}", va1, va2, va3, va4, va5));
}
Console.ReadLine();

使用DataTable在控制台输出的结果

List和DataTable联用例程

在DataTable中取出,同时通过List在控制台输出。请添加图片描述

using System.Data;

List<TaskItem> listTask = new List<TaskItem>();
TaskItem taskItem = new TaskItem();

taskItem.Task_NO = 1;
taskItem.S_Position = 1;
taskItem.D_Position = 1;
taskItem.Task_Status = 1;

listTask.Add(taskItem);

DataTable dt = new DataTable();
dt.Columns.Add("Task_NO");
dt.Columns.Add("Task_IDX");
dt.Columns.Add("S_Position");
dt.Columns.Add("D_Position");
dt.Columns.Add("Task_Status");

for (int i = 0; i < listTask.Count; i++)
{
    string Task_NO = listTask[i].Task_NO.ToString();
    string S_Position = listTask[i].S_Position.ToString();
    string D_Position = listTask[i].D_Position.ToString();
    string Task_Status = listTask[i].Task_Status.ToString();

    DataRow dar = dt.NewRow();
    dar["Task_NO"] = Task_NO;
    dar["S_Position"] = S_Position;
    dar["D_Position"] = D_Position;
    dar["Task_Status"] = Task_Status;
    dt.Rows.Add(dar);
}

for (int i = 0; i < dt.Rows.Count; i++)
{
    string va1 = dt.Rows[i]["Task_NO"].ToString();
    string va2 = dt.Rows[i]["Task_IDX"].ToString();
    string va3 = dt.Rows[i]["S_Position"].ToString();
    string va4 = dt.Rows[i]["D_Position"].ToString();
    string va5 = dt.Rows[i]["Task_Status"].ToString();
    Console.WriteLine(string.Format("{0}-{1}-{2}-{3}-{4}", va1, va2, va3, va4, va5));
}

public class TaskItem
{
    public int Task_IDX;     //任务索引
    public int Task_NO;      //任务号
    public int Task_Status;  //任务状态
    public int S_Position;   //起始位置
    public int D_Position;   //结束位置
}

联用后效果显示
通过本次的简单例程简单了解了List和DataTable的使用方法,同时了解其数据的输入输出方法。本人随笔,望大神指正!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将List转换为DataTable,可以使用以下代码实现: ``` public DataTable ListToDataTable<T>(List<T> list) { DataTable dataTable = new DataTable(); PropertyInfo[] properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo property in properties) { dataTable.Columns.Add(property.Name, property.PropertyType); } foreach (T item in list) { DataRow dataRow = dataTable.NewRow(); foreach (PropertyInfo property in properties) { dataRow[property.Name = property.GetValue(item); } dataTable.Rows.Add(dataRow); } return dataTable; } ``` 这个方法接受一个List作为参数,并使用反射来获取List中对象的属性信息。然后,它创建一个DataTable对象,并根据属性信息添加列。接下来,它遍历List中的每个对象,创建一个DataRow对象,并将属性值赋给相应的列。最后,将DataRow添加到DataTable中,最终返回转换后的DataTable。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [ListDataTable并导出为Excel](https://download.csdn.net/download/vouyv/9512300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [DataTable转换为List的通用方法](https://blog.csdn.net/runAndRun/article/details/12519663)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值