문제

string.join ()를 이해할 수 있습니다.

  var stringies1 =new [] {"Blood", "is", "Thicker", "Than", "Water" };
  var zoin = string.Join("|", stringies1);

확장 메소드 join ()과 어떻게 다릅니 까?

I mean stringies1.Join(IEnumerable<T Result......)

도움이 되었습니까?

해결책

당신이 말하는 확장 방법, 열거 가능 컬렉션에 가입하기위한 것입니다. 즉, 나란히 배치하고 항목과 일치시키려면 결과를 생성합니다. 전화 번호부를 파티 이름 목록과 일치시키고 목록에있는 모든 이름에 대한 전화 번호를 찾으십시오.

따라서, 확장 방법 조인을 사용하여 하나의 배열을 서로 배치하고 하나의 긴 배열에 결합 할 수 없습니다.

그러나 대안이 있지만 확장 방법을 사용할 수 있습니다. 열거 가능 .concat 같은 수업에서.

이 메소드는 배열만으로 작동하지 않고 구현하는 모든 수집 유형에서 작동하지 않습니다. IEnumerable<T>, 따라서 다른 것을 생산할 것입니다 IEnumerable<T> 결과적으로. 이 결과를 사용하여 배열로 변환 할 수 있습니다. 열거 가능.

따라서 다음 코드를 사용합니다.

var stringies1 = new [] {"Blood", "is", "Thicker", "Than", "Water" };
var stringies2 = new [] { "and", "so", "is", "wine" };

var stringies3 = stringies1.Concat(stringies2).ToArray();
// stringies3 now contains "Blood", "is", ... and "and", "so", "is", ...

이것은 .NET 3.5를 사용하고 있다고 가정하고 파일 상단의 사용 목록에 다음을 가지고 있다고 가정합니다.

using System.Linq;

반면에, 귀하 (또는이 답변을 찾는 다른 사람)가 .NET 3.5를 사용하지 않는 경우 수동 코드가 필요합니다. 다음은 도움이 될 수있는 간단한 일반 방법 (.NET 2.0을 가정)입니다.

public static T[] Concat<T>(T[] firstSource, T[] secondSource,
    params T[] restOfSources)
{
    // omitted validation of non-null arguments, etc.

    Int32 totalLength = firstSource.Length + secondSource.Length;
    foreach (T[] source in restOfSources)
        totalLength += source.Length;

    T[] result = new T[totalLength];
    Int32 currentIndex = 0;

    Array.Copy(firstSource, 0, result, currentIndex, firstSource.Length);
    currentIndex += firstSource.Length;

    Array.Copy(secondSource, 0, result, currentIndex, secondSource.Length);
    currentIndex += secondSource.Length;

    foreach (T[] source in restOfSources)
    {
        Array.Copy(source, 0, result, currentIndex, source.Length);
        currentIndex += source.Length;
    }

    return result;
}

이것은 다음과 같이 사용할 수 있습니다.

var stringies1 = ...
var stringies2 = ...

var stringies3 = YourClass.Concat(stringies1, stringies2);

다른 팁

나는 확장 방법으로 당신이 Enumerable.Join 방법? 그만큼 string.Join ienumerable.join은 두 가지 다른 방법입니다.

  • string.Join 문자열 배열을 가져 가서 분리기를 사용하여 함께 합류하고 결과 문자열을 반환합니다.
  • Enumerable.Join SQL의 조인 작업과 같은 방식으로 두 컬렉션에 크게 행동합니다.

가독성에 대한 다른 접근 방식 동일한 기능 및 적절한 경우 코드가 적습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top