2013-01-02 62 views
3

我有一个包含那些创建逗号的字符串分隔行情从列表

public class User 
    { 

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

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

    } 

我然后使用JSON解串器串(A组,B组,C组)组的列表,一类叫做用户创建用户和组的列表。不过,我想能够得到各组的字符串这种格式为每个用户:

“组A”,“B组”,“C组”

我已经试过这样:

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

但是它给我的列表以这种格式(不带引号):

A组,B组,C组

任何想法,我做错了什么?

回答

12

任何想法我在做什么错在这里?

那么你没有在任何地方添加引号 - 所以你没有得到它们。

您可以用引号括每个项目自己很轻松地:这是假设你使用.NET 4.0或更高版本

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

- 如果你正在使用.NET 3.5(不具有相当的好string.Join支持),您需要创建一个数组,但你并不需要将其转换为string[](如ToArray已经返回数组)...

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) + "\""; 
相关问题