代码之家  ›  专栏  ›  技术社区  ›  Amra

按名称分组并在linq to xmlc中包含重复数据#

  •  0
  • Amra  · 技术社区  · 16 年前

    我开始学习了asp.net在工作中,我得到了一个创建和修复网页的项目asp.net.

    我在将数据从xml显示到web页面的函数中遇到了问题。

    代码的目的是在顶部获取最新的记录(日期和无时间),对于同一节点具有相同公共名称的其余记录将位于下面。

    现在的问题是,如果有两个以上的节点具有相同的值和相同的日期,它将被拆分并像对待不同的项目一样对待,它将创建两个具有两个不同顶部项目的组。

    var xd = XDocument.Parse(element.OuterXml);
    
    if (xd != null)
    {
        var results =
           (from el1 in xd.Descendants("Microbiology")
            from el2 in el1.Descendants("Test")
            orderby el2.Element("Date").Value descending
            //orderby el2.Element("Rubric").Value
            // I tried using distinct here but does not work.
            where el2.Element("Date").Value ==
                  (el1.Descendants("Test").Where(
                      e => e.Element("ReadCode").Value ==
                          el2.Element("ReadCode").Value).First().Element("Date").Value) 
            select new Microbiology
            {
                Date = el2.Element("Date") != null ? el2.Element("Date").Value : "",
                ReadCode = el2.Element("ReadCode") != null
                               ? el2.Element("ReadCode").Value
                               : "",
                Rubric = el2.Element("Rubric") != null
                               ? el2.Element("Rubric").Value
                               : "",
                SubMicro = (from subMicroEl1 in xd.Descendants("Microbiology")
                            from subMicroEl2 in subMicroEl1.Descendants("Test")
                            orderby subMicroEl2.Element("Date").Value descending
                            orderby subMicroEl2.Element("Rubric").Value
                            where subMicroEl2.Element("Rubric").Value ==
                                  el2.Element("Rubric").Value &&
                                  subMicroEl2.Element("Date").Value !=
                                  el2.Element("Date").Value
                            select new Microbiology
                            {
                                Date = subMicroEl2.Element("Date") != null
                                           ? subMicroEl2.Element("Date").Value
                                           : "",
                                ReadCode = subMicroEl2.Element("ReadCode") != null
                                           ? subMicroEl2.Element("ReadCode").Value
                                           : "",
                                Rubric = subMicroEl2.Element("Rubric") != null
                                           ? subMicroEl2.Element("Rubric").Value
                                           : "",
                            }).ToList<Microbiology>()
            });
    

    XML格式:

    <Microbiology>
        <Test>
            <Date>2008-10-23</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value>123</Value>
            <Units/>
        </Test>
        <Test>
            <Date>2008-10-23</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-10-23</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-10-23</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-10-23</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-10-23</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
      <Value>123123</Value>
            <Units/>
        </Test>
        <Test>
            <Date>2008-10-23</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-10-23</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-07-30</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-07-30</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-07-30</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-07-30</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-07-09</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-07-09</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-07-09</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-07-09</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-07-09</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-07-09</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-07-09</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-07-09</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-05-12</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-05-12</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-05-12</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-05-12</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-03-07</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-03-07</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-03-07</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-03-07</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-01-15</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-01-15</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-01-15</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-01-15</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-01-15</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2008-01-15</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-11-07</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-11-07</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-11-07</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-11-07</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-10-08</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-10-08</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-10-08</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-10-08</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-10-08</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-10-08</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-08-13</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-08-13</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-06-13</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-06-13</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-06-13</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-06-13</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-05-04</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-05-04</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-05-04</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-05-04</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-01-26</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2007-01-26</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-09-29</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-09-29</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-08-31</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-08-31</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-08-31</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-08-31</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-08-16</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-08-16</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-08-16</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-08-16</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-06-02</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-06-02</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-06-02</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-06-02</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-05-09</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-05-09</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-05-09</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-05-09</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-01-17</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2006-01-17</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-11-22</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-11-22</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-10-18</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-10-18</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-10-18</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-10-18</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-09-13</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-09-13</Date>
            <ReadCode>4JRA.</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus screening test</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-09-13</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-09-13</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-09-13</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-09-13</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-07-19</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-07-19</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-07-19</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-07-19</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-03-15</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-03-15</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-03-15</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-03-15</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2004-04-05</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2004-04-05</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2004-04-05</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2004-04-05</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2004-04-05</Date>
            <ReadCode>4J17.</ReadCode>
            <Rubric>Sample culture</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2004-04-05</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2003-10-06</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2003-10-06</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2003-01-20</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2003-01-20</Date>
            <ReadCode>4J15.</ReadCode>
            <Rubric>Sample: organism sensitivity</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2002-06-17</Date>
            <ReadCode>4I16.</ReadCode>
            <Rubric>Microscopy, culture and sensitivities</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2002-06-17</Date>
            <ReadCode>4I16.</ReadCode>
            <Rubric>Microscopy, culture and sensitivities</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>1998-04-02</Date>
            <ReadCode>4JG3.</ReadCode>
            <Rubric>Skin ulcer swab taken</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2002-04-02</Date>
            <ReadCode>4JG3.</ReadCode>
            <Rubric>Skin ulcer swab taken</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2002-01-09</Date>
            <ReadCode>4JG6.</ReadCode>
            <Rubric>Skin swab culture positive</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2001-01-08</Date>
            <ReadCode>4JG6.</ReadCode>
            <Rubric>Skin swab culture positive</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2005-12-05</Date>
            <ReadCode>4JG3.</ReadCode>
            <Rubric>Skin ulcer swab taken</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2001-12-03</Date>
            <ReadCode>4I16.</ReadCode>
            <Rubric>Microscopy, culture and sensitivities</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2001-12-03</Date>
            <ReadCode>4I16.</ReadCode>
            <Rubric>Microscopy, culture and sensitivities</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2001-12-03</Date>
            <ReadCode>4I16.</ReadCode>
            <Rubric>Microscopy, culture and sensitivities</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2001-10-01</Date>
            <ReadCode>4I16.</ReadCode>
            <Rubric>Microscopy, culture and sensitivities</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2001-10-01</Date>
            <ReadCode>4I16.</ReadCode>
            <Rubric>Microscopy, culture and sensitivities</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2001-07-06</Date>
            <ReadCode>4JG3.</ReadCode>
            <Rubric>Skin ulcer swab taken</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2001-06-12</Date>
            <ReadCode>4JG3.</ReadCode>
            <Rubric>Skin ulcer swab taken</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2001-06-12</Date>
            <ReadCode>4JG5.</ReadCode>
            <Rubric>Skin swab culture negative</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2001-05-22</Date>
            <ReadCode>4JG6.</ReadCode>
            <Rubric>Skin swab culture positive</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2000-11-10</Date>
            <ReadCode>4JG3.</ReadCode>
            <Rubric>Skin ulcer swab taken</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2000-09-19</Date>
            <ReadCode>4JG3.</ReadCode>
            <Rubric>Skin ulcer swab taken</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2000-06-07</Date>
            <ReadCode>4JP..</ReadCode>
            <Rubric>Methicillin resistant staphylococcus aureus positive</Rubric>
            <Value/>
            <Units/>
        </Test>
        <Test>
            <Date>2000-01-31</Date>
            <ReadCode>4JG6.</ReadCode>
            <Rubric>Skin swab culture positive</Rubric>
            <Value/>
            <Units/>
        </Test>
    </Microbiology>
    

    更新

    任何帮助都将不胜感激。

    提前谢谢。

    3 回复  |  直到 16 年前
        1
  •  1
  •   danijels    16 年前

    我可能误解了你,但这就是你要找的吗?

    var set = xd.Descendants("Microbiology");
    var results = set.GroupBy(p => p.ReadCode).Select(g => new {Code = g.Key, Tests = g.OrderByDescending(t => t.Date)});
    

        2
  •  1
  •   Christopher B. Adkins    16 年前
    var resultsRubric =     
        from el1 in xd.Descendants("Rubric")
        where el1.Value.Equals(rubricSearchValue)
        select el1.Parent;
    

    或者

    var resultsReadCode =     
        from el1 in xd.Descendants("ReadCode")
        where el1.Value.Equals(readCodeSearchValue)
        select el1.Parent;
    

    或者

    var resultsRubric =     
        from el1 in xd.Descendants("Test")
        where el1.FirstChild("Rubric").Value.Equals(rubricSearchValue) || el1.FirstChild("ReadCode").Value.Equals(readCodeSearchValue)
        select el1.Parent;
    

    对于这三个代码片段,您可以简单地使用一个变量来列出您要查找的Rubric或ReadCode,它将返回包含所需代码的测试元素的列表。从那里你就可以继续按你最喜欢的方式对它们进行分类。希望这有点帮助。

        3
  •  1
  •   Tomas Jansson    16 年前

    我想你可能想这样做:

        static void Main(string[] args)
        {
            var xd = XDocument.Parse(xml);
            if (xd != null)
            {
                var tests = xd.Descendants("Test");
    
                var groupedResult = (from test in tests
                             select new Microbiology
                             {
                                 Date = test.Element("Date").Value,
                                 ReadCode = test.Element("ReadCode").Value,
                                 Heading = test.Element("Rubric").Value
                             }).
                             OrderByDescending(y => y.Date).
                             GroupBy(y => y.ReadCode);
                var result = from item in groupedResult
                             select new Microbiology
                             {
                                 ReadCode = item.First().ReadCode,
                                 Date = item.First().Date,
                                 Heading = item.First().Heading,
                                 SubMicro = item.Skip(1).ToList()
                             };
                foreach (var res in result)
                {
                    Console.WriteLine(res.Heading);
                    foreach(var item in res.SubMicro)
                    Console.WriteLine(item.ReadCode + " " + item.Date);
                }
            }
            Console.ReadLine();
        }
    

    我所做的是:1。进行所有测试。2按日期订购,因为那是你想要的。三。按ReadCode对它们进行分组,这样就可以对它们进行分组。4从分组结果中选择结果,并将SubMicro设置为剩余元素列表(skip(1)部分,如果需要列表中的所有元素,请删除skip(1))。希望有帮助。

    推荐文章