强制 FirstOrDefault 为 return null

Enforce FirstOrDefault to return null

如果在列表中找不到某个元素,我需要 return null,但它 return 是一个空 guid。

mappedTypes.Where(x => x.ReferenceId == new Guid("1a087b71-638c-4f3c-b1cf-3b0438c181c0")).Select(x=>x.MappingId).FirstOrDefault()

此查询只是 returns '00000000-0000-0000-0000-000000000000' - 我想 return null - 或单个 guid 值(如果存在)。

您可以 select 转换为 Guid?:

mappedTypes.Where(x => x.ReferenceId == new Guid("1a087b71-638c-4f3c-b1cf-3b0438c181c0"))
           .Select(x => (Guid?) x.MappingId)
           .FirstOrDefault();

另请参阅: Nullable types (C# Programming Guide)