我有类似的请求,如下面的链接
"Grouping" dictionary by value
但我想根据班级的属性进行分组。
public class myClass1
{
public int id { get; set; }
public string networkId { get; set; }
}
在下面的示例中,我想要一组networkId
var obj1 = new myClass1() { id = 11, networkId = "asdf1" };
var obj2 = new myClass1() { id = 22, networkId = "asdf2" };
var obj3 = new myClass1() { id = 33, networkId = "asdf3" };
var obj4 = new myClass1() { id = 44, networkId = "asdf1" };
var obj5 = new myClass1() { id = 55, networkId = "asdf2" };
var obj6 = new myClass1() { id = 66, networkId = "asdf1" };
var obj7 = new myClass1() { id = 77, networkId = "asdf1" };
var classDictionary = new Dictionary<int, myClass1>();
classDictionary.Add(1, obj1);
classDictionary.Add(2, obj2);
classDictionary.Add(3, obj3);
classDictionary.Add(4, obj4);
classDictionary.Add(5, obj5);
classDictionary.Add(6, obj6);
classDictionary.Add(7, obj7);
Dictionary<myClass1, List<int>> test2 =
classDictionary.GroupBy(r => r.Value.networkId)
//.ToDictionary(t => t.Key, t => t.Select(r => r.Value).ToList());
结果就像是一个字符串,其键值如下所示
"asdf1" -> List of obj1, obj4, obj6, obj7
"asdf2" -> List of obj2, obj5
"asdf3" -> List of obj3
任何帮助?