[英]How to join values from dictionary?
我的字典代码如下:
int entry=0;
string[] numbers ={"123","123","123","456","123"};
Dictionary<string, List<string>> dictionary = new Dictionary<string, List<string>>();
foreach (string number in numbers)
{
if (dictionary.ContainsKey("ABC"))
{
}
else if (!dictionary.ContainsKey("ABC") && entry==0)
{
dictionary.Add("ABC", new List<string>());
dictionary["ABC"].Add(number);
entry = 1;
}
else if (!dictionary.ContainsKey("ABC") && entry == 1)
{
dictionary["ABC"].Add(number);
}
}
foreach(KeyValuePair<string,string> kvp in dictionary)
{
Console.WriteLine("Key={0},Value = {1}", kvp.Key,kvp.Value);
}
Console.ReadKey();
我想要如下输出Key="ABC",Value="123,456"
即我只需要打印一次所有字典值,而无需重复。 在上面的字符串数组123中出现了4次。但是我只想打印一次,也需要456,并且还要用comma(“,”)将这些值联合起来。所以我需要像Key="ABC",Value="123,456"
。 请分享您的想法。 提前致谢。
我只需要打印一次所有字典值,而无需重复。
使用Distinct
方法。
以逗号(“,”)表示值的关节
使用String.Join
方法。
foreach(var kvp in dictionary)
{
Console.WriteLine("Key={0},Value = {1}",
kvp.Key,
String.Join(", " kvp.Value.Distinct())
);
}
您可以这样尝试:
foreach(var value in dictionary.Values.Distinct())
{
names = String.Join(", ", value);
}
我认为以下for循环变量不正确:
foreach(KeyValuePair<string,string> kvp in dictionary)
{
Console.WriteLine("Key={0},Value = {1}", kvp.Key,kvp.Value);
}
它应该显示为:然后注意写行的区别
foreach(KeyValuePair<string,List<string>> kvp in dictionary)
{
Console.WriteLine("Key={0},Value = {1}", kvp.Key,string.Join(",", kvp.Value.ToArray()));
}
您可以使用以下简单的linq来展平并加入所有字典内容:
var result = string.Join(" - ", dic.Select(kvp => string.Format("Key={0}, Values={1}", kvp.Key, string.Join(", ",kvp.Value.Distinct()))));
而不是使用此数组:
string[] numbers = {"123","123","123","456","123"};
将另一个数组添加为:
string[] uniqueNumbers = numbers.Distinct().ToArray();
现在使用带有唯一值的此数组将其添加到字典中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.