LINQ 作为数据集与列名的问题

本文关键字:问题 数据集 LINQ | 更新日期: 2023-09-27 18:36:23

如何避免在针对数据表的 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"。

LINQ 作为数据集与列名的问题

尝试使用

static IEnumerable<DataRow> GetTheRows(DataTable dt, string name)
{
    return dt.AsEnumerable().Where(r => r.Field<string>("yourColumn") == name);
}

或给定方案中正确的数据类型。 使用 Field<T> 方法时需要指定类型。