#c# #pattern-matching
Вопрос:
Допустим, у меня есть класс
public class Foo
{
public int Bar { get; set; }
public string Baz { get; set; }
}
И я инициализирую это в переменной.
var foo = new Foo
{
Bar = 123,
Baz = "123"
};
Можно ли сопоставить этот шаблон с изменяемым значением?
Потому что я могу это сделать:
if (test is { Bar: >= 100 })
{
// do
}
Возможно ли этого достичь?
if (test is { Bar: >= 100, Baz: value.Length > 5 })
{
// do
}
Приведенный выше синтаксис недопустим.
Ответ №1:
Вложенный шаблон свойств {Length: > 5}
должен сделать свое дело:
if (foo is { Bar: >= 100, Baz: {Length: > 5}})
{
// do
}
Комментарии:
1. , значит И или ИЛИ?
2. Да, это то, что я искал. Спасибо. Не знал, что мы можем гнездиться внутри
3. @вивекнуна
AND
4. @viveknuna sharplab
5. @GuruStron спасибо, гуру