【问题标题】:combine 2 ienumerable with distinct type (one to many)将 2 ienumerable 与不同类型(一对多)结合起来
【发布时间】:2019-07-19 10:07:31
【问题描述】:

我必须这样列出:

IEnumerable<Entities.Article> articlelist;
IEnumerable<Entities.MeasureUnit> measureList

我想将这些列表合并为一个。将文章与圣餐列表中的所有度量单位组合在一起,仅使用名称文章、ID 度量单位、名称度量单位。

您可以为列表中的每个项目执行两个循环,但我想知道是否有办法使用 linq 使其更简单。

Foreach 示例:

            foreach(Entities.Article article in articlelist.ToList())
            {
                foreach(Entities.MeasureUnit measureUnit in measureList.ToList())
                {

                    searchList.Add(new Models.SearchItem() { IDItem = measureUnit.IDMeasureUnit, PrincipalProperty = article.Description, SecondaryProperty = measureUnit.Description });

                }
            }

【问题讨论】:

  • 考虑在es.stackoverflow.com 上发帖,或将问题翻译成英文
  • 英文好吗?
  • 好吧抱歉我试着翻译一下

标签: c# linq ienumerable


【解决方案1】:

您可以使用SelectMany 来构建这个笛卡尔积:

IEnumeable<Models.SearchItem> searchItems = articlelist
   .SelectMany(article => measureList, (a, m) 
      => new Models.SearchItem() { IDItem = m.IDMeasureUnit, PrincipalProperty = a.Description, SecondaryProperty = m.Description });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 2015-08-03
    • 2022-01-17
    • 1970-01-01
    • 2011-10-04
    • 2019-08-03
    • 2022-11-02
    相关资源
    最近更新 更多