具有潜在空值的多列上的 Linq GroupBy

Linq GroupBy on multiple columns with potentials null value

我正在努力完成这项工作:

 var customerSearchResult = customers.GroupBy(                               
            x => new {
                x.CustomerID,
                x.email,
                x.CreatedOn,
                x.FirstName,
                x.LastName,
                x.Profile == null ? -1 : x.Profile.Value
            })
            .Select(csr => new CustomerSearchResult
            {
                CustomerID = csr.Key.CustomerID,
                Email = csr.Key.email,
                CreatedOn = csr.Key.CreatedOn

            });

我收到一个

Error CS0746 Invalid anonymous type member declarator. Anonymous type members must be declared with a member assignment, simple name or member access.

因为这一行x.Profile == null ? -1 : x.Profile.Value 配置文件可以为空。

知道怎么做吗?

Anonymous 中声明此变量的名称 class:

var customerSearchResult = customers.GroupBy(                               
            x => new {
                x.CustomerID,
                x.email,
                x.CreatedOn,
                x.FirstName,
                x.LastName,
                Profile = x.Profile == null ? -1 : x.Profile.Value
            })
            .Select(csr => new CustomerSearchResult
            {
                CustomerID = csr.Key.CustomerID,
                Email = csr.Key.email,
                CreatedOn = csr.Key.CreatedOn
            });

正如@Abion47 在评论中提到的,您可以将您的假设简化为:

Profile = x.Profile?.Value ?? -1