2016-09-03 6 views
2
내가 할

X-금액을 여러 배열을 병합 :C 번호는 다음과 같이 찾고 <code>jagged array</code>에서 하나 개의 배열에 <code>Arrays</code>의

string[] sArray1 = {"FB1" , "FB(1)" , "V1.0"}; 
string[] sArray2 = {"FB1" , "FB(1)" , "" , "V1.0"}; 
string[] sArray3 = {"FB2" , "FB(2)" , "V5.2"} 

나는 하나 Array

sArray1[0] == sArray2[0] && sArray1[1] == sArray2[1] 

로 병합 할 Array 이미

string[] sArray12 = {"FB1" , "FB(1)" , "V1.0" , "V1.0"}; 

I과 같아야합니다 병합 된 그것을 시도했다 Array.CopyTo(); 및 Enumerable.Union<>. Enumerable.Union<>의 문제점은 필드 3과 필드 4가 동일한 값을 가질 때 필드 3만이 Array에 기록된다는 것입니다. 두 값을 모두 쓸 수있는 방법이 있습니까? 아니면 내 문제에 대한 더 나은 접근 방법이 있습니까?

+0

"V2.0"와 같은 무언가가 첫 번째 또는 두 번째 배열에 있지 않습니다. 이것은 어디서 오는 거니? –

+0

이 편집되었습니다. "V1.0"이어야합니다. –

+0

"V1.0"이 나타나기를 원하지만 "FB1"을 두 번 나타나지 않게하려면? –

답변

0

아마

if (sArray1[0] == sArray2[0] && sArray1[1] == sArray2[1]) 
{ 
    var sArray12 = sArray1.Concat(sArray2.Skip(2)) 
         .Where(x => !string.IsNullOrEmpty(x)) //probably 
         .ToArray(); 
} 
+0

더 많은 것'sArray1.Concat (sArray2.Skip (3)). ToArray' – Slai

+0

고마워, 그것은 내가 원했던대로 정확하게 작동한다 –

+0

@Slai 나는 Skip (2)이 될 것이라고 생각하지만 그래, 고쳐 둔다. – bashis