我有一个简单的对象,格式为
class MyObject {
public string foo;
public string bar;
}
我有一个这些对象的列表,其中'foo'的值是唯一的,而'bar'的值不是。例如 - 想象一下值如下
我希望对这些项目进行分组,使其如下所示:Dictionary<string,List<string>
具有唯一的“条形码”键,以及List<string>
相关的“foo”值。
我可以使用一个相当简单的循环来做到这一点 -
Dictionary<string,List<string>> result = new Dictionary<string,List<string>>();
myObjectList = new List<MyObject>();
foreach (MyObject obj in myObjectList)
{
if (result.ContainsKey(obj.bar))
{
result[obj.bar].Add(obj.foo);
}
else
{
result.Add(obj.bar,new List<string> {obj.foo});
}
}
但我正在努力学习如何正确使用LINQ,似乎有一个优雅的解决方案使用它。使用LINQ执行此操作的正确方法是什么?