【发布时间】: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