두 개의 목록(Of String)을 결합하는 가장 효율적인 방법은 무엇입니까?
예를 들어 다음과 같습니다.
Dim los1 as New List(Of String)
los1.Add("Some value")
Dim los2 as New List(Of String)
los2.Add("More values")
두 가지를 하나로 결합하는 가장 효율적인 방법은 무엇입니까?List(Of String)
?
편집: 모두가 제공한 솔루션이 마음에 들기는 하지만, 사용하지 못하고 있다는 점도 언급했어야 합니다.NET 2.0 프레임워크.
생각합니다
los1.AddRange(los2)
두 목록의 시퀀스를 보려면 다음을 사용합니다.Enumerable.Concat
방법.
Dim combined = los1.Concat(los2)
이 옵션은 다음을 반환됩니다.IEnemurable(Of String)
의 모든 요소를 포함합니다.los1
그리고.los2
새 컬렉션을 대량으로 할당하지 않고 두 개의 개별 컬렉션을 반복합니다.
JaredPar의 답변은 두 목록 모두에 열거할 개체를 제공합니다.만약 당신이 실제로 원한다면,List(Of String)
이러한 값을 포함하는 개체는 다음과 같이 간단합니다.
Dim combined As New List(Of String)(los1.Concat(los2));
편집: 를 사용한다는 이유만으로.NET 2.0은 개인적으로 유용하다고 생각하는 일부 LINQ 확장 방법의 자체 버전을 롤할 수 없다는 것을 의미하지 않습니다.그Concat
특히 C#*에서 구현하는 방법은 매우 사소한 것일 것입니다.
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))
* To be fair, this is a lot more straightforward in C# thanks to the yield
keyword. It could be done in VB.NET, but it'd be trickier to provide deferred execution in the same manner that the LINQ extensions do.
유니온()은 잠재적으로 다른 항목 목록을 원하는 경우(나는 구별만 한다고 생각함) 다른 대안입니다.
언급URL : https://stackoverflow.com/questions/2457609/whats-the-most-efficient-way-to-combine-two-listof-string
'IT' 카테고리의 다른 글
ASP에 대한 그리드 컨트롤.NET MVC? (0) | 2023.05.13 |
---|---|
텍스트 문자열 내에서 텍스트를 추출하는 방법 (0) | 2023.05.13 |
홈브루의 설치 가능한 패키지 목록을 어떻게 찾습니까? (0) | 2023.05.13 |
sudo: npm: 명령을 찾을 수 없습니다. (0) | 2023.05.13 |
SQL의 저장 프로시저에서 RETURN 값 가져오기 (0) | 2023.05.13 |