-2

Dictionary<string,List<string>> dictionary=new Dictionary<string,List<string>>();

var c;

var c returns me values : 
100, "somestring"
100,"someotherstring"
200,"two"

foreach(var d in c)
{
 dict.Add(d.key,d.value);
// Need to add key value pairs here for dictionary. if key is same then values should get concatenated.
}

foreach(keyvaluepair<string,List<string>> pair in dictionary)
{
    // This loop should output something like below...
       100,"somestring,someotherstring"
       200,"two"

}
4

4 回答 4

1

您不能在字典中有重复的键,因此代码dict.Add(d.key,d.value);行将引发异常

于 2012-07-20T11:26:18.620 回答
1

不可能,key value为此目的创建带有字段的自己的类

于 2012-07-20T11:28:23.727 回答
0

用 as 值制作一个字典List<string>,然后添加值:

foreach(var d in c)
{
  if (!dict.ContainsKey(d.Key))
    dict.Add(d.Key, new List<string>());
  dict[d.Key].Add(d.Value);
}

然后你可以从列表中获取逗号分隔的字符串string.Join

string commaDelimitedList = string.Join(",", valueList.ToArray());
于 2012-07-20T11:36:30.670 回答
0

添加值时,您必须检查键是否存在:

if (!dict.ContainsKey(d.key)) {
  dict.Add(d.key, new List<string>());
}
dict[d.Key].Add(d.Value);

输出值时,连接字符串:

Console.Write(pair.Key + ", " + String.Join(", ", pair.Value));
于 2012-07-20T11:43:11.507 回答