C# 字典c中的ToString#
我有一个c语言的C# 字典c中的ToString#,c#,string,dictionary,C#,String,Dictionary,我有一个c语言的字典,我需要一种方法来创建一个字符串,其内容格式为“key1-value1,key2-value2”,等等 我是c#的新手,因此我创建了以下函数来实现此目标: private string buildString(Dictionary<int, string> info) { string result = ""; int i = 1; foreach (KeyValuePair<int, string> pair in info)
字典
,我需要一种方法来创建一个字符串,其内容格式为“key1-value1,key2-value2”
,等等
我是c#的新手,因此我创建了以下函数来实现此目标:
private string buildString(Dictionary<int, string> info)
{
string result = "";
int i = 1;
foreach (KeyValuePair<int, string> pair in info)
{
if (i < info.Count)
{
result += pair.Key + "-" + pair.Value + ",";
}
else
{
result += pair.Key + "-" + pair.Value;
}
i++;
}
return result;
}
私有字符串构建字符串(字典信息)
{
字符串结果=”;
int i=1;
foreach(信息中的KeyValuePair对)
{
如果(i
但是,此函数不完善且冗长。我知道C#有String.format
,但我不确定是否使用它,也不知道如何使用它
是否有更好的方法以更高效、更少冗长的方式实现相同的输出?如果是,如何设置?
string.Format
是设置字符串的格式,您有值,并且希望将它们连接起来
您可以像这样使用string.Join
:
var result = string.Join(", ", info.Select(kvp => string.Join("-", kvp.Key, kvp.Value)));
string.Format
是对字符串进行格式化,您有值,并且希望将它们连接起来
您可以像这样使用string.Join
:
var result = string.Join(", ", info.Select(kvp => string.Join("-", kvp.Key, kvp.Value)));
这适合你的需要吗
Dictionary<int, string> dic = new Dictionary<int, string>()
{
{1, "aaaa"},
{2, "uodhasdhsa"},
{3, "audaygdyasgdyasdgasydgas"}
};
List<string> list = new List<string>(dic.Select(keyValuePair => keyValuePair.Key + "-" + keyValuePair.Value));
Console.WriteLine(string.Join(", ", list));
Dictionary dic=新字典()
{
{1,“aaaa”},
{2,“uodhasdhsa”},
{3,“Audaygdyasgdyadgassydgas”}
};
列表=新列表(dic.Select(keyValuePair=>keyValuePair.Key+“-”+keyValuePair.Value));
Console.WriteLine(string.Join(“,”,list));
这是否适合您的需要
Dictionary<int, string> dic = new Dictionary<int, string>()
{
{1, "aaaa"},
{2, "uodhasdhsa"},
{3, "audaygdyasgdyasdgasydgas"}
};
List<string> list = new List<string>(dic.Select(keyValuePair => keyValuePair.Key + "-" + keyValuePair.Value));
Console.WriteLine(string.Join(", ", list));
Dictionary dic=新字典()
{
{1,“aaaa”},
{2,“uodhasdhsa”},
{3,“Audaygdyasgdyadgassydgas”}
};
列表=新列表(dic.Select(keyValuePair=>keyValuePair.Key+“-”+keyValuePair.Value));
Console.WriteLine(string.Join(“,”,list));
您不应该使用字符串
。当您使用foreach循环时,您使用的计数器(i)是不必要的。foreach循环将查看集合中的所有项目,然后停止,因此不需要计数器。@DavidWatts在此代码中,i
不用于停止。在info
的最后一个元素上,他不想附加,
字符。@ikh是的,我刚开始快速扫描时好像没注意到。但这仍然是不必要的。您可以使用linq实现类似于if(pair==info.Last())
的功能。谢谢你抓住了我的错误。你不应该使用string
。当您使用foreach循环时,您使用的计数器(i)是不必要的。foreach循环将查看集合中的所有项目,然后停止,因此不需要计数器。@DavidWatts在此代码中,i
不用于停止。在info
的最后一个元素上,他不想附加,
字符。@ikh是的,我刚开始快速扫描时好像没注意到。但这仍然是不必要的。您可以使用linq实现类似于if(pair==info.Last())
的功能。谢谢你抓住了我的错误…在30秒之前!。。在30秒之前!