将 LINQ let 与 null return 值一起使用
Use LINQ let with null return values
我正在尝试在 LINQ 中执行一个方法
var result = from fruit in fruits
let type = GetType(fruit)
select new {
fruit = fruit,
type = type != null ? type.Name : "N/A"
};
FruitType GetType(Fruit fruit)
{
if (fruit == a)
return TypeA;
else
return null;
}
这会引发错误,因为:如果 result
是 null
,let
不允许访问 type.Name
,即使它在 [=16= 之后] 检查。
有什么解决方法吗?
为什么不直接 return 一个默认值而不是 null?
FruitType GetType(Fruit fruit)
{
if(fruit == a)
return TypeA;
return new FruitType {Name = "N/A"};
}
那么您的查询就变成了...
var result = from fruit in fruits
let type = Gettype(fruit)
select new {
fruit = fruit,
type = type.Name
};
我正在尝试在 LINQ 中执行一个方法
var result = from fruit in fruits
let type = GetType(fruit)
select new {
fruit = fruit,
type = type != null ? type.Name : "N/A"
};
FruitType GetType(Fruit fruit)
{
if (fruit == a)
return TypeA;
else
return null;
}
这会引发错误,因为:如果 result
是 null
,let
不允许访问 type.Name
,即使它在 [=16= 之后] 检查。
有什么解决方法吗?
为什么不直接 return 一个默认值而不是 null?
FruitType GetType(Fruit fruit)
{
if(fruit == a)
return TypeA;
return new FruitType {Name = "N/A"};
}
那么您的查询就变成了...
var result = from fruit in fruits
let type = Gettype(fruit)
select new {
fruit = fruit,
type = type.Name
};