对表格类型变量,指定某一列(可以根据索引指定,也可以根据列名指定),返回这一列的数据,类型为列表。
使用场景是什么呢?请举个例子看看。
表格实际为c#的DataTable类型,可以在表达式中使用代码读取每一行的指定列内容后加入到列表中。
下面是GPT的回答可以参考:
在 C# 中,可以使用 DataTable 的 DataColumn 和 DataRow 来获取特定列的数据并将其转换为列表。以下是根据列索引和列名分别获取数据的示例代码:
DataTable
DataColumn
DataRow
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; } }
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; } }
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> 中,并返回此列表。
GetColumnDataByIndex
GetColumnDataByName
List<object>
写了一个子程序,可以试一下 https://getquicker.net/subprogram?id=847a4606-249b-4ff5-e153-08dca45772b6
棒棒哒
这个需求是比较自然的想法。比如pandas就有这样的用法。有时候会遇到这样的情景:在一个表格数据中,我只需要用到某一列的数据,可能是这列数据跟其他数据去匹配。