【问题标题】:Sorting iEnumerable with external iEnumerable使用外部 iEnumerable 对 iEnumerable 进行排序
【发布时间】:2014-10-14 16:21:09
【问题描述】:

我一直在尝试使用另一个 iEnumerable 作为参考点对 iEnumerable 进行排序。

我的第一个 iEnumerable “组合”(我想排序的那个)包含 67 个项目 但这些项目的唯一重要属性是 InventSizeName。

我的第二个 iEnumerable "sizes" 包含 5 个项目,这些项目看起来像这样

身份证 姓名 排序顺序

我想做的是使用sizes.SortOrder 对组合进行排序,其中sizes.Name == combination.InventSizeName。

离我最近的是

        var sorted = combinations
        .Zip(sizes, (c, s) => new { com = c, siz = s })
        .OrderBy(v => v.siz.Order)
        .Select(v => v.com)
        .ToList();

然而,这并没有比较属性并设置正确的顺序(显然),它给了我一个只有 5 个条目的列表。

很抱歉这个问题写得不好,但我希望你们中的任何人都可以在这里帮助我。

【问题讨论】:

  • “不比较属性”是什么意思?哪些属性? “尺寸”与“组合”的顺序相同吗? (如果不是,Zip 不合适。)您能否提供一个简短但完整的程序来演示该问题?
  • 合并IEnumerable时将Zip更改为Join

标签: c# linq sorting


【解决方案1】:

我认为最简单的方法是加入两个 IEnumerables

var sorted = from c in combinations
             join s in sizes on c.Name equals s.InventSizeName
             orderby s.Order
             select c;

【讨论】:

  • 谢谢,这正是我想要的!恭喜队友
猜你喜欢
  • 1970-01-01
  • 2012-01-28
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多