变量 inside 内插

Variable inside inner interpolation

这个非常有效:

($"SELECT * FROM {Table} WHERE Hex = 11 {(isConfirmed ? " AND UserId<>5" : string.empty)}";

尽管如此,除了静态 5 值之外,我还想将变量放在那里。我尝试按如下方式进行更改,但出了点问题:

($"SELECT * FROM {Table} WHERE Hex = 11 {(isConfirmed ? " AND UserId<>"{myVariable} : string.empty)}";

我做错了什么?

这应该有效:

string query = $"SELECT * FROM {Table} WHERE Hex = 11 {(isConfirmed ? $" AND UserId<>{myVariable}" : string.Empty)}";

您应该在内部 " AND UserId<>{myVariable}" 字符串之前添加一个插值字符 $ 以在该字符串中使用插值表达式

var isConfirmed = true;
var Table = "test";
var myVariable = 5;
var str = $"SELECT * FROM {Table} WHERE Hex = 11 {(isConfirmed ? $" AND UserId<>{myVariable}" : string.Empty)}";

它会给你

SELECT * FROM test WHERE Hex = 11 AND UserId<>5