2013-01-02 2 views
3

에서 따옴표를 분리 만들기 난 다음 JSON 디시리얼라이저를 사용하고쉼표의 문자열 목록

public class User 
    { 

     public string FirstName { get; set; } 
     public string LastName { get; set; } 

     public User() 
     { 
      Groups = new List<string>(); 
     } 

    } 

문자열 (그룹 A, 그룹 B 그룹 C)입니다 그룹의 목록을 포함하는 클래스라는 사용자가 사용자 및 그룹 목록을 작성합니다.

"그룹 A", "B 그룹", "그룹 C"나는이 시도했다

: 그러나 나는 각 사용자에 대해이 형식 그룹의 문자열을 얻을 수 있도록하고 싶습니다

string[] AllGroups; 
AllGroups = (string[])usrList[0].Groups.ToArray(); 
return string.Join(",", AllGroups); 

그러나 (따옴표 포함)이 형식으로 나에게 목록을주고있다 :

그룹 A, 그룹 B 그룹 C는

어떤 생각이 내가 여기서 무슨 일을하고 있는가?

답변

12

내가 여기 무엇을 잘못하고 있는지 알 수 있습니까?

글쎄요, 아무 데나 따옴표를 붙이지 않으니까요. - 당신은 매우으로하지 않는 .NET 3.5을 (사용하는 경우

return string.Join(", ", usrList[0].Groups.Select(x => "\"" + x + "\"")); 

는 .NET 4 이상을 사용하는 가정 것 :

당신은 자신이 충분히 쉽게 따옴표를 사용하여 각 항목을 둘러싸고 수 있습니다 좋은 string.Join 지원) 당신이 배열을 작성해야하지만 (ToArray 이미 배열을 반환으로) string[]에 캐스팅 할 필요가 없습니다 ...

return string.Join(", ", usrList[0].Groups 
            .Select(x => "\"" + x + "\"") 
            .ToArray()); 

나는 쉼표 구분 기호 뒤에 공백을 추가 한 뿐만 아니라, 귀하의 질문에 주어진 - 나는 용의자 현재 코드는 입니다.Group A,Group B,Group C입니다. 더 값이없는 경우 결과로 ""을 얻고 싶은 가정

1

, 당신은이 작업을 수행 할 수 있습니다

return "\"" + string.Join("\", \"", AllGroups) + "\""; 

참고이 하지 빈 문자열입니다 - 두 개의 따옴표를 포함하는 문자열입니다.

이 코드를 사용하여 null 또는 빈 문자열을 반환하려면 먼저 AllGroups의 크기를 확인해야합니다.

var AllGroups = usrList[0].Groups; 
if (AllGroups.Count() == 0) return null; 
else return "\"" + string.Join("\", \"", AllGroups) + "\"";