开发者

How to get a particular row from a DataRow[]?

DataRow[] headerRows = null;

headerRows = mappingTable.Select("FieldID LIKE '0_%'开发者_运维知识库");     //mappingTable is of type DataTable.

I have three columns in the mappingTable "Id","Display", "Value"

Now, I need to get the Value where "Id" = 0_0_0 from the headerRows.

Is there any simple way to do this? Thanks for any help.


If you have to use DataRow[] then with linq you can do this:

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


You need to set the PrimaryKey on the DataTable and then you can use Find() on the Rows collection to find the row with that key.

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

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


You could use LINQ: but this might be overkill:

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

If you have to have DataRow[] then

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

From there you have only data rows that match your criteria, so you can cycle through for the value.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜