我有以下代码:
using System.Collections.Generic;
public class Test
{
static void Main()
{
var items = new List<KeyValuePair<int, User>>
{
new KeyValuePair<int, User>(1, new User {FirstName = "Name1"}),
new KeyValuePair<int, User>(1, new User {FirstName = "Name2"}),
new KeyValuePair<int, User>(2, new User {FirstName = "Name3"}),
new KeyValuePair<int, User>(2, new User {FirstName = "Name4"})
};
}
}
public class User
{
public string FirstName { get; set; }
}正如您在上面看到的,同一密钥有多个用户。现在我想将它们分组,并将列表对象转换为字典,其中的键将是相同的(如上所示的1,2),但值将是collection.Like this:
var outputNeed = new Dictionary<int, Collection<User>>();
//Output:
//1,Collection<User>
//2,Collection<User>也就是说,它们现在被组合在一起。
我怎样才能做到这一点呢?
发布于 2010-10-20 21:19:20
下面是一个使用LINQ的ToDictionary的例子:
var output = items.GroupBy(kvp => kvp.Key)
.ToDictionary(group => group.Key,
group => group.Select(kvp => kvp.Value).ToList());它会产生一个Dictionary<int,List<User>>。
https://stackoverflow.com/questions/3977979
复制相似问题