VB中的谓词函数

时间:2017-12-28 18:52:51

标签: .net vb.net

我在C#中有一个谓词我试图翻译成VB.net:

user.first_name = claimsIdentity.Claims.First(c => c.Type == System.IdentityModel.Claims.ClaimTypes.GivenName).Value;

致:

user.first_name = claimsIdentity.Claims.First(Function(claim) claim.Type = ClaimTypes.GivenName).Value

我收到以下错误:

  

System.InvalidOperationException:'序列不包含匹配项   元素“

有没有人对如何使这项工作有任何建议?

1 个答案:

答案 0 :(得分:0)

使用FirstOrDefault代替Null-conditional运营商:

user.first_name = claimsIdentity.Claims
  .FirstOrDefault(c => c.Type == System.IdentityModel.Claims.ClaimTypes.GivenName)?.Value;

如果序列不包含任何元素,它将返回默认值。