如何从DataRow []获取特定行?

时间:2011-03-25 19:15:43

标签: c#

DataRow[] headerRows = null;

headerRows = mappingTable.Select("FieldID LIKE '0_%'");     //mappingTable is of type DataTable.

我在mappingTable "Id","Display", "Value"

中有三列

现在,我需要从headerRows获取Value "Id" = 0_0_0

有没有简单的方法可以做到这一点? 谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

您需要在PrimaryKey上设置DataTable,然后您可以使用Find()集合上的Rows来查找包含该密钥的行。

dataTable.PrimaryKey = new DataColumn[] { dataTable.Columns["Id"] };

object value = dataTable.Rows.Find("0_0_0")["Value"];

答案 1 :(得分:1)

你可以使用LINQ:但这可能有点过分了:

dt.AsEnumerable().Where(dr => dr.Field<object>("FieldId").StartsWith("0_"));

如果你必须有DataRow []那么

headerRows = dt.AsEnumerable().Where(dr => dr.Field<object>("FieldId").StartsWith("0_")).ToArray();

从那里,您只有符合条件的数据行,因此您可以循环查看该值。

答案 2 :(得分:1)

如果你必须使用DataRow [],那么使用linq你可以这样做:

String value = (String)rows.Single(
    row => String.Equals(row["Id"], "0_0_0"))["Value"];