从列表中创建逗号分隔的引号字符串

本文关键字:分隔 字符串 列表 创建 | 更新日期: 2023-09-27 17:50:31

我有一个名为user的类,它包含一个字符串组列表(组a,组B,组C)

public class User
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public User()
        {
            Groups = new List<string>();
        }
    }

然后我使用json反序列化器来创建用户和组的列表。但是,我希望能够为每个用户获得具有此格式的组的字符串:

"A组"B组"C组"

我已经试过了:

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

然而,它给了我一个这样格式的列表(没有引号):

A、B、C组

你知道我做错了什么吗?

从列表中创建逗号分隔的引号字符串

你知道我做错了什么吗?

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

你可以自己用引号把每一项括起来:

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

假设你正在使用。net 4或更高版本-如果你正在使用。net 3.5(没有那么好的string.Join支持),你需要创建一个数组,但你不需要将其强制转换为string[](因为ToArray已经返回一个数组)…

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

我也在逗号分隔符之后添加了一个空格,考虑到您的问题-我怀疑您当前的代码是真的给您Group A,Group B,Group C

假设您想在没有值的情况下获得""结果,您可以这样做:

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

注意不是一个空字符串——它是一个包含两个引号的字符串。

如果您想使用此代码返回null或空字符串,您需要先检查AllGroups的大小。

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