下面是我的字符串列表:
List<string> mylist = new List<string>(new string[] { "element1", "element2", "element3" });
现在我想以下面的输出形式将上面的列表返回到Web服务:
{
"element1" : "",
"element2" : "",
"element3" : "",
}
我想在我的网站上显示如下所示的输出:
{
"element1" : "",
"element2" : "",
"element3" : "",
}
这就是我现在正在做的事情:
string output = "{" + Environment.NewLine;
foreach (var item in myList)
{
output += $"\"{item}\" : \"\"," + Environment.NewLine;
}
output = output.Remove(output.Length - 1) + "}";
但是当我有40-50个记录时,我的循环将运行40-50次,我试图避免。
我甚至试图用这个:
string output = JsonConvert.SerializeObject(myList);
但上面没有提供我想要的确切输出格式。
任何人都可以建议我做任何更好的方法来避免forloop并减少代码以产生预期的输出吗?
答案 0 :(得分:5)
这应该做你想要的:
string output = JsonConvert.SerializeObject(
mylist.ToDictionary(key => key, v => string.Empty));
使用ToDictionary()
我们会从您的列表中创建Dictionary<T1, T2>
(在您的情况下为Dictionary<string, string>
)。我们让Key
等于列表中的项目,而Value
只是一个空字符串。
小提琴here
修改强> 如果需要缩进格式,请将第二个参数传递给SerializeObject:
string output = JsonConvert.SerializeObject(
mylist.ToDictionary(key => key, v => string.Empty)
Formatting.Indented);
答案 1 :(得分:2)