2016-08-11 3 views
-1
private void add_value_to_row(client_file client_file, ref StringBuilder OutputCustomer, String value) 
{ 
    if (client_file.output_format == "txt") 
     if (value = "the first value in add_value_to_row") 
     OutputCustomer.AppendFormat("{0}", value); 
     else if (value = "every other value in add_value_to_row") 
     OutputCustomer.AppendFormat("\t{0}", value); 
} 

"x"의 입력을 받아 아래 코드에 따라 .txt 형식의 데이터 행을 만드는 함수가 있습니다. 중첩 된 if 문을 작성하여 따옴표로 묶인 것을 수행 할 수 있는지 궁금합니다. 아래에 출력 OutputCustomer.AppendFormat("{0}\t{1}\t{2}\t{3}\t{4}", x.url, x.company, x.Country, x.vendor, x.product);StringBuilder 형식 구조

OutputCustomer = new StringBuilder(); 

add_value_to_row(clientInfo.cf, ref OutputCustomer, x.url); 
add_value_to_row(clientInfo.cf, ref OutputCustomer, x.company); 
add_value_to_row(clientInfo.cf, ref OutputCustomer, x.Country); 
add_value_to_row(clientInfo.cf, ref OutputCustomer, x.vendor); 
add_value_to_row(clientInfo.cf, ref OutputCustomer, x.product); 
+1

여기 정확히 묻는 것이 아직 불분명 한가요? – Rahul

+0

'add_value_to_row'가 컬렉션이 아닌 메소드로 보이기 때문에 "첫 번째 값 add_value_to_row"의 의도를 이해하는 것은 어렵습니다. 당신은 당신이 그것을 통과시킨 어떤 물건을 추측하는 방법을 원한다고 말하는 것입니까? 그런데'StringBuilder'는 클래스가 아니라 구조체입니다. 'ref '로 전달할 필요 없음 –

답변

0

왜 당신이 항목 하나 하나를 추가해야하는 데이터에 따라 최종 출력? 방법에 당신의 목표를주고 결정하게하십시오.

private void add_value_to_row(client_file client_file, ref StringBuilder OutputCustomer, YourType value) 
{ 
    if (client_file.output_format == "txt") 

    OutputCustomer.AppendFormat("{0}\t{1}\t{2}\t{3}\t{4}", 
    value.url,value.company,value.Country,value.vendor,value.product); 

} 

그리고 그렇지 않으면 당신은 부울을 제공하거나 당신이 정말로 당신을 원한다면 방법은

업데이트

을 signiture에서 int로이

add_value_to_row(clientInfo.cf, ref OutputCustomer, x); 

과 같이 호출 방법은 signiture에 부울이 필요한 방식입니다.

private void add_value_to_row(client_file client_file, ref StringBuilder OutputCustomer, String value, bool isFirst=false) 
{ 
    if (client_file.output_format == "txt") 
     if (isFirst) 
     OutputCustomer.AppendFormat("{0}", value); 
     else 
     OutputCustomer.AppendFormat("\t{0}", value); 
} 

그리고이

add_value_to_row(clientInfo.cf, ref OutputCustomer, x.url, true); 
add_value_to_row(clientInfo.cf, ref OutputCustomer, x.company); 
add_value_to_row(clientInfo.cf, ref OutputCustomer, x.Country); 
add_value_to_row(clientInfo.cf, ref OutputCustomer, x.vendor); 
add_value_to_row(clientInfo.cf, ref OutputCustomer, x.product); 

과 같이 호출 또한 당신이하려는 것 같습니다 매번

+0

예제를 간결하게하기 위해 5 개 항목 만 썼다. 실제로는 실제 코드에 더 많은 내용이있다. 첫 번째 항목의 형식이 {0}이면서 나머지는 \ t {0} –

+0

@LucasHan이 업데이트를 확인하도록 if 문을 작성해야했습니다. –

+0

감사합니다. –

0

그것을 작성할 필요가 없습니다 있도록 선택적 매개 변수로 가질 수주의 탭으로 구분 된 출력 행을 만듭니다. 이를 수행하는 훨씬 더 쉬운 방법은 다음과 같습니다. 을 참조하십시오.