| 1 | 2 | 3 |
+------------+
| A | B | C |
| D | E | F |
| G | H | I |
System.Data.DataTable dt = new DataTable();
dt.Columns.Add("1");
dt.Columns.Add("2");
dt.Columns.Add("3");
dt.Rows.Add(new object[] { "A", "B", "C" });
dt.Rows.Add(new object[] { "D", "E", "F" });
dt.Rows.Add(new object[] { "G", "H", "I" });
int? index = null;
var rows = new System.Data.DataView(dt).ToTable(false, new[] {"1"}).Rows;
for (var i = 0; i < rows.Count; i++)
{
if (rows[i].ItemArray.FirstOrDefault() as string == "A")
index = i;
}
有什么方法可以简化此代码,以获取提供的某一列的索引以获取特定行的索引吗?在这种情况下,索引将为0
,因为我要遍历第一列直到找到“
A”。感觉应该对此有一个linq解决方案,但我无法弄清楚。
如果使用DataTableExtensions.AsEnumerable()方法,则可以使用LINQ查询您的DataTable。然后,您可以List<T>.FindIndex
用来确定给定谓词的索引:
int? index = new System.Data.DataView(dt).ToTable(false, new[] { "1" })
.AsEnumerable()
.Select(row => row.Field<string>("1")) // ie. project the col(s) needed
.ToList()
.FindIndex(col => col == "G"); // returns 2
在scala火花数据帧中是否有的替代方案。我想从火花数据帧的列中选择特定的行。例如,在R等效代码中的第100行
我有一个从Excel文档导入的数据框,如下所示: 我希望能够返回列1的内容作为一个列表,这样我就可以运行一个for循环,并为每个集群创建一个Excel工作表。 是否也可以将整列或整行的内容返回到列表中?例如
我有一个从数据库中提取数据的表。在同一张桌子里,我有两个按钮。通过按任意一个按钮,我希望获得所有特定的列数据。我试过几种方法。请参阅下面的代码。 生成上表HTML和PHP: JavaScript:每个警报都是我尝试的不同方法,但没有成功
是否可以实现可变模板类的函数成员,该类从可变参数列表返回给定类型的索引。 我看到的问题是创建某种伪变量参数列表,只是为了触发编译时模板求值。 用法大概是这样的:
问题内容: 我有一个包含6列的R数据框,并且我想创建一个仅包含三列的新数据框。 假设我的数据帧df,我想提列A,B和E,这是唯一的命令,我可以计算出: 有没有更紧凑的方法可以做到这一点? 问题答案: 如果您的data.frame被调用,则使用dplyr包df1: 也可以在不使用%>%管道的情况下将其写为:
问题内容: 请告诉我如何获取特定行的列值= 123的列名。 问题答案: 结果