Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用LINQ编写案例陈述_C#_Linq - Fatal编程技术网

C# 用LINQ编写案例陈述

C# 用LINQ编写案例陈述,c#,linq,C#,Linq,我是LINQ新手,我需要用CASE语句编写LINQ语句。我正在尝试将以下查询转换为linq。这里1和0是布尔值。我怎样才能做到这一点 Select CASE [db].[table] WHEN 1 THEN 'Yes' WHEN 0 THEN 'No' END AS Options from table 我尝试了以下方法,但现在效果良好 Options = table.Options = 1 ? "Yes" : table.Options = 0 ? "No" 请改为: Options

我是LINQ新手,我需要用CASE语句编写LINQ语句。我正在尝试将以下查询转换为linq。这里1和0是布尔值。我怎样才能做到这一点

Select CASE [db].[table] WHEN 1 THEN 'Yes' WHEN 0 THEN 'No' END AS Options from table
我尝试了以下方法,但现在效果良好

Options = table.Options  = 1 ? "Yes" : table.Options  = 0 ? "No"
请改为:

Options = table.Options == 1 ? "Yes" : "No";

您需要对该表进行寻址: 我会尝试:

Options = db.table.ToList().Select(X => X.Options == 1 ? "Yes" : "No";

有几件事你做错了-第一,三元运算符的语法是

condition ? resultIfTrue : resultIfFalse
其次,需要使用相等运算符(
=
)进行比较,而不是赋值(
=
)运算符

因此,
table.Options=1?“是”:table.Options=0?“否”
应替换为

table.Options == 1 ? "Yes" : "No"
根据您实际的LINQ提供程序,可能会有一个帮助程序允许您构建类似SQL的
case
表达式(条件类型和choice-y类型),但如果不确切知道您在使用什么,这是不可能的。如果没有助手,您将不得不使用三元运算符(这对于读取多个条件来说有点疯狂,但哦,好吧…)

例如,我的LINQ提供程序使用以下语法:

Case(table.Options).When(1, "Yes").Else("No").End()


但是,唯一的标准方法是三元运算符。查看特定LINQ提供程序的文档,看看它是否支持类似SQL的
case
表达式,以及如何支持这些表达式。

“但现在正在工作”,这样就没有问题了?如果您的意思是
而不是
,那么它现在以什么方式工作,您会得到异常吗?如果是,什么样的异常?当然是,
tables.ToList().Select(x=>x.Options==1?“是”:“否”)
Select CASE[db].[table]
在SQL中无效,因为
[db].[table]
是一个表而不是一个列。
=
是,您可能正在寻找更好的
=
来显示表结构/数据?正如我前面所说的,我正在检查bool值,这里我得到的错误常量值1无法转换为boolThat,因为您有table.Options=1。如我所说,更改为double=,如“table.Options==1”@chrisl08将该配置添加到您的答案正文中。不能使用==因为运算符==不能应用于bool和intThen table类型的oprands。Options是一个布尔字段。Try:Options=table.Options?“是”:“否”;
Case().When(table.Options == 1, "Yes").Else("No").End()