c# - 如何在 LINQ 中选择特定的列?

标签 c# linq

我必须使用 linq 从我的数据表中选择特定的列 我正在使用这段代码

ds.Table[0].AsEnumerable().Where<DataRow>(r=>r.Field<int>("productID")==23).CopyToDataTable();

~

但它为我提供了所有列,我只需要 PRODUCTNAME 、 DESCRIPTION 、 PRICE

如何编写此查询?

最佳答案

要扩展@lazyberezovsky,您可以使用匿名类型投影来获取您想要的所有字段:

ds.Table[0].AsEnumerable()
    .Where<DataRow>(r => r.Field<int>("productID") == 23)
    .Select(r => new { ProductName = r.Field<string>("productName"), 
                       Description = r.Field<string>("description"),
                       Price = r.Field<decimal>("price") });

我不知道你的产品名称、描述和价格字段是什么名称和类型,所以你必须替换它们。

关于c# - 如何在 LINQ 中选择特定的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10600854/

相关文章:

c# - Enumerable.ElementAt<TSource> 有什么意义?

c# - DateTime.TryParse API 关于日期元素分隔符或定界符的内部行为

c# - DataTable不适合这种线程操作吗?

c# - 如何重构此代码以进行 LINQ 过滤?

c# - 根据一列获取两个数据表之间的差异

c# - Enumerable.Skip 和排序

c# - 如何进行简单的数据绑定(bind)

c# - 使用 LINQ 和 LINQ 扩展计算字典中的值

c# - 如何在同一个 LINQ 查询中使用 `let` 关键字并选择 ValueTuple?

多对多 EF Code First 对象中带有 where 子句的 Linq