Linq到数据集-获取C中的特定列值

Linq到数据集-获取C中的特定列值,linq,dataset,Linq,Dataset,我正试图根据错误Id获取错误描述: String errorDesc = from resultCodesTableRow in resultCodesDT.AsEnumerable() where resultCodesTableRow.Field<int>("Error_Code_Column_Name") == errorCode select resultCodes

我正试图根据错误Id获取错误描述:

String errorDesc = from resultCodesTableRow in resultCodesDT.AsEnumerable()
                            where resultCodesTableRow.Field<int>("Error_Code_Column_Name") == errorCode
                            select resultCodesTableRow.Field<string>("Error_Desc_Column_Name").ToString();
为什么会出现错误:

无法将类型“System.Data.EnumerablerRowCollection”隐式转换为“string”

查询应该是什么样子的

变化 ResultCodeDT.A可计算到ResultCodeDT.rows

这是否有效:

where (int)resultCodesTableRow.GetItem("Error_Code_Column_Name") == errorCode
select resultCodesTableRow.GetItem("Error_Desc_Column_Name")

我不太确定实际的LINQ查询返回的是什么,最有可能是通过看到它,正如您所说的,它可能返回一个集合,因此为了避免对查询使用第一个或最后一个方法

字符串errorDesc=来自ResultCodedt.AsEnumerable中的ResultDestTableRow 其中resultDestTableRow.FieldError\u Code\u Column\u Name==errorCode
选择ResultDestTableRow.FieldError\u Desc\u Column\u Name.First.ToString

语句中的Select函数将返回IEnumerable。 相反,你需要使用类似

String errorDesc = (from resultCodesTableRow in resultCodesDT.AsEnumerable()
                            where resultCodesTableRow.Field<int>("Error_Code_Column_Name") == errorCode
                            select resultCodesTableRow.Field<string>("Error_Desc_Column_Name").ToString()).First();
 String errorDesc = resultCodesDT.Where(X=> x.Error_Code_Column_Name==errorCode)
.Select(s=>s.Error_Desc_Column_Name.toString()).First();