如何避免在针对数据表的 LINQ 查询中使用魔术字符串?
这有效:
public IEnumerable getDisplayNames(){ IE可编号名称Qry = from rowin displayTable.AsEnumerable() 选择"行"。字段("显示"); 返回名称Qry;}
但这失败并显示"指定的强制转换无效"。
public IEnumerable getDisplayNames(){ 字符串 disp = 我的字典["D"]; IE可编号名称Qry = from rowin displayTable.AsEnumerable() 选择"行"。字段(分布); 返回名称Qry;}
我的偏好是使用本地字符串(或直接引用myDictionary),而不是对字符串进行硬编码。 所以我想在我的查询中使用字符串 disp 而不是短语"display"。
尝试使用
static IEnumerable<DataRow> GetTheRows(DataTable dt, string name)
{
return dt.AsEnumerable().Where(r => r.Field<string>("yourColumn") == name);
}
或给定方案中正确的数据类型。 使用 Field<T>
方法时需要指定类型。