从列表中创建逗号分隔的引号字符串
本文关键字:分隔 字符串 列表 创建 | 更新日期: 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) + "'"";