gpt4 book ai didi

c# - 将 DataTable 转换为 LINQ : Unable to query multiple fields

转载 作者:行者123 更新时间:2023-11-30 14:42:07 26 4
gpt4 key购买 nike

导入电子表格,我用该数据填充了一个 DataTable 对象并返回预期结果。

尝试将其转换为一种我可以轻松查询以搜索问题记录的格式我已完成以下操作

public void Something(DataTable dt)
{
var data = from row in dt.AsEnumerable()
select row["Order"].ToString();
}

按预期工作,给我一份订单 list 。但是我无法将其他字段添加到此 EnumerableRowCollection。尝试按如下方式添加其他字段会出现错误

public void Something(DataTable dt)
{
// row["Version"] throws an error on me
var data = from row in dt.AsEnumerable()
select row["Order"].ToString(), row["Version"].ToString();
}

错误:“无法在此作用域中声明名为‘row’的局部变量,因为它会给‘row’赋予不同的含义,而‘row’已经在‘子’作用域中用于捐赠其他东西”

我想我需要为列名添加别名,但我没有运气。我在这里缺少什么?

最佳答案

听起来您正在编写错误的选择语句。尝试以下操作:

public void Something(DataTable dt)
{
var data = from row in dt.AsEnumerable()
select new {
Order = row["Order"].ToString(),
Something = row["Something"].ToString(),
Customer = row["Customer"].ToString(),
Address = row["Address"].ToString()
};
}

这将创建一个新的匿名类型对象集合,您可以根据需要对其进行迭代和使用。不过请记住,您希望能够从函数返回 data。如果您需要该功能,则需要创建要使用的具体类型(代替匿名类型)。

关于c# - 将 DataTable 转换为 LINQ : Unable to query multiple fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3343960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com