【问题标题】:Linq : Object property based on other properties of same objectLinq:基于同一对象的其他属性的对象属性
【发布时间】:2017-07-23 06:56:10
【问题描述】:

今天我被困在基于同一对象的其他属性值的对象属性值选择上。以下是我的类结构,我已经使用 Serializer 将类从 XML 转换为对象,我想根据“City”类中“Name”的值选择“Mainsnow”列表。

[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")

在上述方面,我想访问“Mainsnow”以获取“City”类的相关“Name”。

谢谢

【问题讨论】:

  • 不同的混淆类和属性名称,但我假设你想要List&lt;Mainsnow&gt; data = MainsnowData.Mainsnows.City.Where(x =&gt; x.Name == "test").Mainsnow;
  • @StephenMuecke 基于类 City 不是一个集合

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


【解决方案1】:

这里的假设是您试图从从数据源加载的MainsnowData 集合中获取数据

List<MainsnowData> items = LoadDataFromXml();

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

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

【讨论】:

    猜你喜欢
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    相关资源
    最近更新 更多