2014-10-01 2 views
0

으로 변환합니다. 목록을 문자열 배열로 변환하려고합니다.배열 세부 정보를 C#

public class AcctList 
{ 
    public string sRole { get; set; } 
    public bool bIsPrimary { get; set; } 
    public int iDayNo { get; set; } 
    public bool bIsAirportMeetGreet { get; set; } 
    public bool bIsSeaportMeetGreet { get; set; } 
} 

나는 다음을 수행하여 문자열 배열에 목록을 변환하려고 :

List<AcctList> userAccount = AccountBLL.GetUserInfoListByName(sUser); 

String[] array = userAccount.ToArray(); 

그러나 내가 배열에 목록을 변환 할 수 없습니다 내 목록에는 다음이 포함되어 있습니다. 목록을 배열로 변환하려면 어떻게해야합니까?

+1

그것은 당신이 *'string'의 배열에 *'AcctList' *의 목록을 변환 할 수 있음을 분명 *을하는 데 도움이됩니다. 같은 방식으로 단일 *'AcctList' *를 하나의 *'string' *로 변환 할 수 없습니다. 그런 종류의 전환이 어떻게 먼저 수행되어야하는지 말해야합니다. 'AcctList' 인스턴스를 XML/JSON으로 직렬화 하시겠습니까? 당신은 그 물건에서 단지 하나의 물건을 원하니? 다른 것? 컴파일러는 여기서 추측을하지 않을 것입니다. 나도 마찬가지이다. – MarcinJuraszek

답변

1

수정 된 클래스는 "ToString"메서드를 재정의해야합니다.

public class AcctList 
{ 
    public string sRole { get; set; } 
    public bool bIsPrimary { get; set; } 
    public int iDayNo { get; set; } 
    public bool bIsAirportMeetGreet { get; set; } 
    public bool bIsSeaportMeetGreet { get; set; } 

    public override string ToString() 
    { 
     return base.ToString(); 
     //return your desired string here 
    } 
} 

그런 다음 Linq를 사용하여 각 개체의 ToString을 선택하십시오.

string[] strings = userAccount.Select(p => p.ToString()).ToArray(); 

희망이

2

ToArray() 메서드를 호출하면 목록 형식의 배열 (이 경우 AcctList[])이 만들어지기 때문입니다. 문자열 표현으로 변환하려면 어떻게해야하는지 말해야합니다. 한 예는 userAccount.Select(x => x.ToString()).ToArray() 또는 userAccount.Select(x => x.sRole).ToArray()과 같이 Select() 메서드와 함께 LINQ를 사용할 수 있습니다.

이제 sRole 이상의 정보를 표시하려면 첫 번째 방법을 사용하고 클래스를 ToString() 메서드보다 우선 적용 할 수 있습니다. 또는 람다 식으로 직접 포맷 할 수도 있습니다. 예 : userAccount.Select(x => String.Format("Role={0},IsPrimary={1}", x.sRole, x.bIsPrimary).

+0

'x => x.ToString()'은 Whatever.The.Namespace.Is.AcctList "의 배열을 줄 것이다. – MarcinJuraszek

+0

@MarcinJuraszek 예, 알고 있습니다 만 유효한 전환입니다. OP가'sRole' 이외의 정보를 추가하기를 원한다면, ToString()을 오버라이드하고 select에서 그것을 사용하는 것은 길일 것입니다. 이 문제에 대한 자세한 정보를 제공하는 답을 편집했습니다 (형식 지정). – Mephy

관련 문제