【问题标题】:Multiple table same fields LINQ多个表相同的字段LINQ
【发布时间】:2021-09-06 01:24:47
【问题描述】:

我必须从多个来源获取相同的值,因此我使用了Concat,但我也有大量字段和更多来源。

IEnumerable<Parts> partsList = (from parts in xml.XPathSelectElements("//APS/P")
                                select new WindchillPart
                                    {
                                      Code = (string)parts.Element("Number"),
                                      Part = (string)parts.Element("KYZ"), 
                                      Name = (string)parts.Element("Name"),
                                    })
                               .Concat(from uparts in xml.XPathSelectElements("//APS/U")
                                 select new WindchillPart
                                    {
                                      Code = (string)uparts.Element("Number"),
                                      Part = (string)uparts.Element("KYZ"),
                                      Name = (string)uparts.Element("Name"),
                                 });

我几乎有 15 个字段和 5 个来源。那么有没有办法让这些字段变得通用,只需将源代码添加到某个地方即可工作并简化它?

【问题讨论】:

    标签: c# xml linq xdoc


    【解决方案1】:

    您可以创建一个包含所有路径的数组,并使用SelectMany 来获取元素。最后,您只需拨打一次Select

    string[] pathes = new string[] { "//APS/P", "//APS/U" };
    IEnumerable<Parts> partsList = pathes.SelectMany(path => xml.XPathSelectElements(path)).
          Select(uparts => new WindchillPart
                     {
                         Code = (string)uparts.Element("Number"),
                         Part = (string)uparts.Element("KYZ"),
                         Name = (string)uparts.Element("Name"),
                      });
    

    【讨论】:

      猜你喜欢
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      相关资源
      最近更新 更多