当前位置: 首页 > news >正文

详细介绍:c# datagridview添加list内容

using System;
using System.Collections.Generic;
using System.Data;

// 定义数据模型类
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public DateTime BirthDate { get; set; }
public decimal Salary { get; set; }
public bool IsActive { get; set; }
}

class Program
{
static void Main()
{
// 1. 创建测试数据 List
List<Person> peopleList = new List<Person>
{
new Person { Id = 1, Name = "张三", Age = 30, BirthDate = new DateTime(1993, 5, 15), Salary = 5000.50m, IsActive = true },
new Person { Id = 2, Name = "李四", Age = 25, BirthDate = new DateTime(1998, 8, 20), Salary = 4500.75m, IsActive = true },
new Person { Id = 3, Name = "王五", Age = 35, BirthDate = new DateTime(1988, 3, 10), Salary = 6000.00m, IsActive = false }
};

// 2. 将 List 转换为 DataTable
DataTable peopleTable = ConvertListToDataTable(peopleList);

// 3. 显示结果
DisplayDataTable(peopleTable);
}

/// <summary>
/// 使用手动映射将 List<Person> 转换为 DataTable
/// </summary>
public static DataTable ConvertListToDataTable(List<Person> peopleList)
{
// 创建 DataTable
DataTable dataTable = new DataTable("People");

// 手动创建列(定义表结构)
dataTable.Columns.Add("ID", typeof(int));
dataTable.Columns.Add("姓名", typeof(string));
dataTable.Columns.Add("年龄", typeof(int));
dataTable.Columns.Add("生日", typeof(DateTime));
dataTable.Columns.Add("薪资", typeof(decimal));
dataTable.Columns.Add("是否激活", typeof(bool));

// 如果传入的列表为空或null,返回空表
if (peopleList == null || peopleList.Count == 0)
return dataTable;

// 手动映射每一行数据
foreach (Person person in peopleList)
{
// 创建新行
DataRow row = dataTable.NewRow();

// 手动映射每个属性到对应的列
row["ID"] = person.Id;
row["姓名"] = person.Name;
row["年龄"] = person.Age;
row["生日"] = person.BirthDate;
row["薪资"] = person.Salary;
row["是否激活"] = person.IsActive;

// 将行添加到表中
dataTable.Rows.Add(row);
}

return dataTable;
}

/// <summary>
/// 显示 DataTable 的内容(用于验证)
/// </summary>
public static void DisplayDataTable(DataTable dataTable)
{
Console.WriteLine("DataTable 内容:");
Console.WriteLine("=========================================");

// 显示列头
foreach (DataColumn column in dataTable.Columns)
{
Console.Write($"{column.ColumnName,-10} ");
}
Console.WriteLine();
Console.WriteLine(new string('-', 70));

// 显示数据行
foreach (DataRow row in dataTable.Rows)
{
Console.WriteLine($"{row["ID"],-10} {row["姓名"],-10} {row["年龄"],-10} {((DateTime)row["生日"]).ToString("yyyy-MM-dd"),-12} {row["薪资"],-10} {row["是否激活"],-10}");
}
}
}

http://www.jsqmd.com/news/11476/

相关文章:

  • 20232309 2025-2026-1 《网络与系统攻防技术》实验一实验报告
  • 亚马逊发布基于Linux的Vega OS电视系统,禁止侧载应用
  • .net9.0 JWT AUTH2.0 添加身份认证授权
  • 扣子系列教程
  • 实用指南:同时使用ReactUse 、 ahooks与性能优化
  • 解决vscode中用npm报错
  • MATLAB复杂曲线曲面造型及导函数实现
  • 2025 年最新月嫂培训机构推荐榜单:短期 / 精英 / 金牌 / 高端月嫂培训及就业推荐,精选优质机构
  • 【C++实战㊳】C++单例模式:从理论到实战的深度剖析 - 教程
  • OOP-实验一
  • 达梦使用jemalloc内存分配器
  • 2025 年深圳/龙岗/龙华/罗湖/南山/旧房翻新/出租房/二手房/老房/装修公司推荐:聚焦品质与服务,助您轻松焕新家
  • 基于Python的FastAPI后端开发框架如何使用PyInstaller 进行打包与部署
  • 推荐AI编程项目——MonkeyCode用自然语言就能生成完整可部署应用
  • 2025 年中频炉厂商最新推荐排行榜权威发布,深度剖析应达电气等优质企业核心优势及选购要点节能/智能/自动化成套/高效率/智能感应加热中频炉厂家推荐
  • 2025 年气体/实验室/调压/气路/减压阀厂家推荐榜:聚焦安全与专业,助力各行业精准选品
  • 详细介绍:Day52 串口通信原理与IMX6ULL UART驱动开发
  • 摸鱼混子回归 - ZERO
  • vue3实现抓拍并上传
  • 2025 年国内润滑油厂商最新推荐榜:聚焦优质品牌实力,助力企业精准选品润滑油净化/过滤/回用/液压油润滑油过滤厂商推荐
  • 纯前端实现项目过期
  • 基于形态学的权重自适应图像去噪的MATLAB实现
  • 2025 年油水分离器 / 气液分离器 / 液固分离器 / 水分离器 / 油分离器厂家推荐:西安同大技术沉淀与流体净化解决方案解析
  • 2025 年过滤器厂家最新推荐排行榜:聚焦烛式 / 金属 / 非金属 / 化工 / 精密过滤器等多类型设备,精选优质品牌助企业高效选型液固/高效/气固/催化剂过滤器厂家推荐
  • OOP-实验1
  • 2025 年立式/立式全钢板/青黄储/液压打包机厂家推荐榜:聚焦实用需求,精选高适配设备助力企业降本增效
  • 308、清平调三首
  • 2025管件厂家最新推荐榜:高品质管件与卓越工艺口碑之选
  • 2025不锈钢管件厂家推荐榜:技术实力与诚信口碑双重保障
  • 哪款剪贴板增强软件最好用?有什么剪贴板内容大全值得分享?多款剪切板历史免费版管理工具推荐