Linq:基于同一对象的其他属性的Object属性

时间:2017-07-23 06:56:10

标签: c# asp.net asp.net-mvc linq oop

今天我陷入了基于同一对象的其他属性值的对象属性值选择。以下是我的类结构,我使用Serializer从XML将类转换为对象,我想选择" Mainsnow"列表基于"名称"的值在" City"类。

[XmlRoot(ElementName = "Mainsnow")]
public class Mainsnow
{
    [XmlElement(ElementName = "MainsnowCode")]
    public string MainsnowCode { get; set; }
}

[XmlRoot(ElementName = "City")]
public class City
{
    [XmlElement(ElementName = "Mainsnow")]
    public List<Mainsnow> Mainsnow { get; set; }
    [XmlAttribute(AttributeName = "name")]
    public string Name { get; set; }
}

[XmlRoot(ElementName = "Mainsnows")]
public class Mainsnows
{
    [XmlElement(ElementName = "City")]
    public City City { get; set; }
}

[XmlRoot(ElementName = "MainsnowData")]
public class MainsnowData
{
    [XmlElement(ElementName = "Mainsnows")]
    public Mainsnows Mainsnows { get; set; }
}

我已经尝试了各种各样的期望如下,但没有什么对我有用,任何伙伴都可以帮忙。

MainsnowData.Mainsnows.City.Name.Select(t => t.ToString() == "test")

在上述方面,我想访问&#34; Mainsnow&#34;相关的&#34;名称&#34; &#34;城市&#34;类。

由于

1 个答案:

答案 0 :(得分:0)

此处的假设是您尝试从数据源加载的MainsnowData集合中获取数据

List<MainsnowData> items = LoadDataFromXml();

然后你会Linq投射出所需的输出

Mainsnow[] mainsnows = items.Where(m => m.Mainsnows.City.Name == "test")
                            .SelectMany(m => m.Mainsnows.City.Mainsnow)
                            .ToArray();