具有潜在空值的多列上的 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
我正在努力完成这项工作:
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