作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Silverlight 中创建了两个集合,每个集合都是在不同的时间通过不同的方法创建的。
方法 1 创建一个 List<> 标题为 person(包含字段 first name,last name age)
方法 2 创建了一个名为 Phone 的列表<>(包含电话号码、手机号码)
在 SL 中有没有一种方法可以将这两个列表组合成一个集合,然后可以绑定(bind)到 View 进行显示?
示例:组合成包含所有属性(名字、姓氏、年龄、电话号码、手机号码)的集合
最佳答案
您正在寻找 Zip
函数。它允许您通过组合 eache 的元素将 2 个集合组合成一个集合。
List<Type1> col1 = ...;
List<Type2> col2 = ...;
var combined = col1.Zip(col2, (x, y) => new {
FirstName = x.FirstName,
LastName = x.LastName,
PhoneNumber = y.PhoneNumber,
CellNumber = y.CellNumber });
我不确定 Zip 在 Silverlight 中是否可用。如果不是那么这是它的定义
public static IEnumerable<TRet> Zip<T1, T2, TRet>(
this IEnumerable<T1> enumerable1,
IEnumerable<T2> enumreable2,
Func<T1, T2, TRet> func) {
using (var e1 = enumerable1.GetEnumerator()) {
using (var e2 = enumerable2.GetEnumerator()) {
while (e1.MoveNext() && e2.MoveNext()) {
yield return func(e1.Current, e2.Current);
}
}
}
}
关于.net - 如何将两个集合合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536856/
我是一名优秀的程序员,十分优秀!