Вы ищете функцию Zip
. Позволяет объединить 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);
}
}
}
}