如何创建对象,对来自两个列表在C#一个列表? [英] How do I create a single list of object pairs from two lists in C#?
本文介绍了如何创建对象,对来自两个列表在C#一个列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有对象的两个列表。名单A和名单B.我需要创建相结合的列表A和列表B到对C组名单。例如:
列表A
对象A1
对象A2
对象A3
文件清单b $ b $对象b B1
对象B2
对象B3
名单C(创建对)
对象C1(对象A1,对象B1)
对象C2(对象A2,对象B2)
对象C3(对象A3,对象B3)
解决方案
这将做到这一点:
公共静态的IEnumerable<元组LT; T,U>> CombineWith< T,U>(这个IEnumerable的< T>首先,IEnumerable的< U>第二个)
{
使用(VAR firstEnumerator = first.GetEnumerator())
使用(VAR secondEnumerator =第二.GetEnumerator())
{
布尔hasFirst = TRUE;
布尔hasSecond = TRUE;
,而(
//只有调用MoveNext的,如果它没有最后一次失败
(hasFirst&安培;及(hasFirst = firstEnumerator.MoveNext()))
| //警告:不要改变||
(hasSecond&安培;及(hasSecond = secondEnumerator.MoveNext()))
)
{
收益率的回报。 Tuple.Create(
hasFirst firstEnumerator.Current:默认(T),
hasSecond secondEnumerator.Current:?默认设置(U)
);
}
}
}
编辑:我大大喜欢< A HREF =http://stackoverflow.com/questions/7110762/how-do-i-create-a-single-list-of-object-pairs-from-two-lists-in-c/7110781#7110781 >保罗的答案。
I have two lists of objects. List A and List B. I need to create List C which combines List A and List B into pairs. For example:
List A
object a1
object a2
object a3
List B
object b1
object b2
object b3
List C (creates pairs)
object c1 (object a1, object b1)
object c2 (object a2, object b2)
object c3 (object a3, object b3)
解决方案
This would do it:
public static IEnumerable<Tuple<T, U>> CombineWith<T, U>(this IEnumerable<T> first, IEnumerable<U> second)
{
using (var firstEnumerator = first.GetEnumerator())
using (var secondEnumerator = second.GetEnumerator())
{
bool hasFirst = true;
bool hasSecond = true;
while (
// Only call MoveNext if it didn't fail last time.
(hasFirst && (hasFirst = firstEnumerator.MoveNext()))
| // WARNING: Do NOT change to ||.
(hasSecond && (hasSecond = secondEnumerator.MoveNext()))
)
{
yield return Tuple.Create(
hasFirst ? firstEnumerator.Current : default(T),
hasSecond ? secondEnumerator.Current : default(U)
);
}
}
}
Edit: I vastly prefer Paul's answer.
这篇关于如何创建对象,对来自两个列表在C#一个列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文