Переменная внутри внутренней интерполяции - PullRequest
0 голосов
/ 08 апреля 2020

Это прекрасно работает:

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

Тем не менее, кроме значения stati c 5 , я хочу поместить туда переменную. Я пытался изменить следующим образом, но что-то не так:

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

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 08 апреля 2020

Вы должны добавить символ интерполяции $ перед внутренней " 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 * ОТ теста ГДЕ Hex = 11 И ИД пользователя <> 5

2 голосов
/ 08 апреля 2020

Это должно работать:

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