使用 C# 模式匹配来操作属性的值。

3

假设我有一个类:

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个回答

4
嵌套属性模式{Length: > 5}可以实现此功能。
if (foo is { Bar: >= 100, Baz: {Length: > 5}})
{
    // do
}

“,”是指“与”还是“或”? - Vivek Nuna
@viveknuna AND - Guru Stron
@viveknuna sharplab - Guru Stron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接