表格类型变量能否增加选取某一列数据的功能?

功能建议 · 139 次浏览
ShingU 创建于 2024-07-15 22:20

对表格类型变量,指定某一列(可以根据索引指定,也可以根据列名指定),返回这一列的数据,类型为列表。


回复内容
CL 2024-07-15 22:35
#1

使用场景是什么呢?请举个例子看看。


表格实际为c#的DataTable类型,可以在表达式中使用代码读取每一行的指定列内容后加入到列表中。

下面是GPT的回答可以参考:

在 C# 中,可以使用 DataTableDataColumnDataRow 来获取特定列的数据并将其转换为列表。以下是根据列索引和列名分别获取数据的示例代码:

根据列索引获取数据

csharp
using System; using System.Collections.Generic; using System.Data; class Program { static void Main() { DataTable table = new DataTable(); table.Columns.Add("Column1", typeof(int)); table.Columns.Add("Column2", typeof(string)); table.Rows.Add(1, "A"); table.Rows.Add(2, "B"); table.Rows.Add(3, "C"); int columnIndex = 1; // 根据索引获取第二列数据 List<object> columnData = GetColumnDataByIndex(table, columnIndex); foreach (var item in columnData) { Console.WriteLine(item); } } static List<object> GetColumnDataByIndex(DataTable table, int columnIndex) { List<object> columnData = new List<object>(); foreach (DataRow row in table.Rows) { columnData.Add(row[columnIndex]); } return columnData; } }

根据列名获取数据

csharp
using System; using System.Collections.Generic; using System.Data; class Program { static void Main() { DataTable table = new DataTable(); table.Columns.Add("Column1", typeof(int)); table.Columns.Add("Column2", typeof(string)); table.Rows.Add(1, "A"); table.Rows.Add(2, "B"); table.Rows.Add(3, "C"); string columnName = "Column2"; // 根据列名获取数据 List<object> columnData = GetColumnDataByName(table, columnName); foreach (var item in columnData) { Console.WriteLine(item); } } static List<object> GetColumnDataByName(DataTable table, string columnName) { List<object> columnData = new List<object>(); foreach (DataRow row in table.Rows) { columnData.Add(row[columnName]); } return columnData; } }

在以上示例中,GetColumnDataByIndex 方法根据给定的列索引返回该列的数据,GetColumnDataByName 方法根据给定的列名返回该列的数据。两者都将数据存储在一个 List<object> 中,并返回此列表。

CL 2024-07-15 22:46
#2
ShingU 回复 CL 2024-07-16 19:43 :

棒棒哒

ShingU 2024-07-16 19:38
#3

这个需求是比较自然的想法。比如pandas就有这样的用法。有时候会遇到这样的情景:在一个表格数据中,我只需要用到某一列的数据,可能是这列数据跟其他数据去匹配。

回复主贴