| 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解决方案,但我想不出来。
IndexOf
返回一个int
。 - PeteEnumerableRowCollection<int>
?如果你期望只有一条记录并取出该记录中的任何值,比如int
,那么调用者有责任确保这一点。 - Pete