gpt4 book ai didi

c# - 如何在Linq查询中的选择条件中放置where条件

转载 作者:行者123 更新时间:2023-11-30 17:28:34 25 4
gpt4 key购买 nike

After adding Mickaël Derriey's code. I am getting compile error. Can you tell me what's wrong. ?我有一个问题。在这里,我想根据 FieldsDatafield 的某些条件进行过滤。我该怎么做?

下面是我的 linq 查询: 注意:这段代码有效。

 DataSet queries = query.GetQueryDetails(reportName);
str = queries.Tables[1].AsEnumerable().Select(dataRow => new Query { CommandText = dataRow.Field<string>("CommandText"), DataSetName = dataRow.Field<string>("DataSetName"), Key = dataRow.Field<int>("Fields"), Value=dataRow.Field<string>("DataField") }).ToList();

我想做这样的事情,但这是不可能的。:注意:以下代码无效。显示编译错误。

 DataSet queries = query.GetQueryDetails(reportName);
str = queries.Tables[1].AsEnumerable().Select(dataRow => new Query { CommandText = dataRow.Field<string>("CommandText"), DataSetName = dataRow.Field<string>("DataSetName"), Key = dataRow.Field<int>("Fields").Where(dataRow.Field<int>(("DictVal") == "Key")), Value=dataRow.Field<string>("DataField").Where(dataRow.Field<string>(("DictVal") == "Value")) }).ToList();

我知道我们不能随心所欲地放置 where 条件。但我想根据条件选择 FieldsDataField 列。谁能帮帮我吗?是否可以?

仅供引用:

public partial class Query
{
public string DataSetName { get; set; }
public string CommandText { get; set; }
public int Key { get; set; }
public string Value { get; set; }
}

注意:CommandText、DataSetName、Fields 和DictVal 是表格的列。

最佳答案

你遇到了什么编译错误?

以下是我的回答:

str = queries.Tables[1]
.AsEnumerable()
.Select(dataRow =>
{
var dictVal = dataRow.Field<string>("DictVal");
return new Query
{
CommandText = dataRow.Field<string>("CommandText"),
DataSetName = dataRow.Field<string>("DataSetName"),
Key = dictVal == "Key"
? dataRow.Field<int>("Fields")
: int.MinValue,
Value = dictVal == "Value"
? dataRow.Field<string>("DataField")
: string.Empty
};
});

关于c# - 如何在Linq查询中的选择条件中放置where条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52659698/

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