您可以使用switch语句将对象转换为各自的类型。
var fleetId = 1;
var fleetWhereIdIs1 = Results.Where(obj =>
{
switch(obj)
{
case User user:
return user.UserRoles.Any(role => role.FleetId == fleetId);
case OtherObj obj:
// Get fleet id from other object
return <other_condition_here>;
default:
// default condition if no other condition met
return default;
}
}).ToList();
或者来自C#8的(IMO)更优雅的模式匹配开关
var fleetWhereIdIs1 = Results.Where(obj =>
{
return obj switch
{
User user => user.UserRoles.Any(role => role.FleetId == fleetId),
OtherObj obj => <other_condition_here>,
_ => default
};
}).ToList();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句