在 LINQ 语句中转换对象类型

Put*_*aKg 2 c# linq collections

我有一个Layer包含一个Content对象作为属性的集合。如何Content将其转换为原始对象以在 LINQ 语句中获取其属性?

例如:

var item = Layers.FirstOfDefault(x =>(PushPin)x.Content.Description == "xyz");
Run Code Online (Sandbox Code Playgroud)

在这种情况下ContentPushPin对象类型,我想将其Description属性与xyz

Sel*_*enç 5

用括号括起来

var item = Layers.FirstOfDefault(x => ((PushPin)x.Content).Description == "xyz");
Run Code Online (Sandbox Code Playgroud)


Rob*_*ein 5

如果 Content 可以是 PushPin 以外的其他内容,那么您将需要类似以下内容的内容

var item = Layers.FirstOrDefault(x => x.Content is PushPin && ((PushPin)x.Content).Description == "xyz");
Run Code Online (Sandbox Code Playgroud)