C# 基于对象类型的查询
我想根据外部对象类型(不是值)获取对象列表 为了制作示例,我只编写了6个简单的类来模拟我的问题。 简言之,我想让所有用户的活动地点都是学校类型C# 基于对象类型的查询,c#,linq,C#,Linq,我想根据外部对象类型(不是值)获取对象列表 为了制作示例,我只编写了6个简单的类来模拟我的问题。 简言之,我想让所有用户的活动地点都是学校类型 public class User { public int UserId { get; set; } public Activity Activity{ get; set; } } public class Activity { public int IdActivity { get; set; } public L
public class User
{
public int UserId { get; set; }
public Activity Activity{ get; set; }
}
public class Activity
{
public int IdActivity { get; set; }
public Location Location { get; set; }
}
public abstract class Location
{
public int IdLocation { get; set; }
public string Xy { get; set; }
}
public class Indoor : Location
{
/// props
}
public class External : Location
{
/// props
}
public class School : Location
{
/// props
}
只需使用
is
运算符检查位置类型:
users.Where(u => u.School.Location is School)
如果某些活动可能没有位置,则可以使用null条件运算符来避免NullReferenceException:
users.Where(u => u.School?.Location is School)
试试这个:
IEnumerable<User> schoolUsers = myUsers
.Where(user => user.School.Location is School);
IEnumerable schoolUsers=myUsers
.Where(user=>user.School.Location为学校);
您拼错了学校B和活动属性的适当名称您正在谈论的“外来对象类型(非值)”是什么?您能展示一下您的列表是什么样的吗?如果它只是List myList
或类似的东西,您是否尝试过使用.Where(…)
调用?看看LINQ也许:是的,我犯了一些命名错误,正如我提到的,我刚刚在记事本上写了6个类,很抱歉让人困惑,谢谢你的评论我之前的评论,所有的拼写错误都让我困惑:)