我一直在尝试使用另一个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个条目的列表。
对不起,这个问题写得很糟,但我希望你们中的任何人都可以帮助我。
答案 0 :(得分:3)
我认为最简单的方法是加入两个IEnumerables
var sorted = from c in combinations
join s in sizes on c.Name equals s.InventSizeName
orderby s.Order
select c;