使用外部iEnumerable对iEnumerable进行排序

时间:2014-08-21 06:19:56

标签: c# linq sorting

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

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

我的第二个iEnumerable“尺寸”包含5个项目,这些项目看起来像这样

标识 名称 SortOrder的

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

我最接近的是

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

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

对不起,这个问题写得很糟,但我希望你们中的任何人都可以帮助我。

1 个答案:

答案 0 :(得分:3)

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

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