C#7模式匹配值不为空

我想获取一个可枚举的第一个实例,然后对找到的实例(如果存在!= null)执行一些操作。有没有一种方法可以通过C#7模式匹配来简化访问?


请从以下起点开始:


IEnumerable<Client> clients; /// = new List<Client> {new Client()};

Client myClient = clients.FirstOrDefault();

if (myClient != null)

{

    // do something with myClient

}

我可以将呼叫FirstOrDefault与以下内容结合起来if statement吗:


if (clients.FirstOrDefault() is null myClient)

{

    // do something with myClient

}

我没有在MSDN模式匹配或堆栈溢出的其他地方看到任何类似的示例


白板的微信
浏览 181回答 2
2回答

喵喔喔

您可能会使用以下空传播方法替代RB的答案。var client = clients.FirstOrDefault();var implement = client?.PerformImplementation();尽管语法试图利用该代码,但这将自动执行null检查。一段不错的语法糖,浓缩了代码并且仍然相当富有表现力。
打开App,查看更多内容
随时随地看视频慕课网APP