public static class EnumerableUtils {
public static IEnumerable<T> Concat<T>(IEnumerable<T> first, IEnumerable<T> second) {
foreach (T item in first)
yield return item;
foreach (T item in second)
yield return item;
}
}
然后,看这里:
Dim los1 as New List(Of String)
los1.Add("Some value")
Dim los2 as New List(Of String)
los2.Add("More values")
Dim combined As New List(Of String)(EnumerableUtils.Concat(los2, los2))
4条答案
按热度按时间sr4lhrrt1#
我认为
ie3xauqp2#
如果你只想看到两个列表的序列,那么使用
IEnumerable.Concat
方法。Option Infer On
这将返回一个
IEnumerable(Of String)
,其中包含los1
和los2
中的所有元素。它不会分配一个巨大的新集合,而是会覆盖两个单独的集合。nwsw7zdq3#
JaredPar的答案将给你一个给予对象,它将枚举两个列表。如果你真的想要一个
List(Of String)
对象包含这些值,它就像这样简单:编辑:你知道,仅仅因为你使用.NET 2.0并不意味着你不能推出你自己的版本的一些LINQ扩展方法,你个人觉得有用。特别是
Concat
方法在C#* 中实现起来非常简单:然后,看这里:
yield
关键字,这在C#中更加简单。它可以在VB.NET中实现,但是以LINQ扩展所做的相同方式提供延迟执行会更棘手。hs1ihplo4#
如果你想要一个不同的条目列表(我相信它只做一个不同的),Union()可能是另一个选择。