【发布时间】:2017-01-20 17:11:47
【问题描述】:
我有 Dictionary<T, T>,其中包含一个键(代表一个类别),其中一个空的 List<T> 作为值:
Dictionary<string, List<IMyObject>> myObjects;
每一对看起来像这样:
{ firstCategory, new List<IMyObject>> }
我现在有一个 List<T> 的 IMyObject 的:
List<IMyObject> myObjectsUnsorted;
我想遍历myObjectsUnsorted并添加到正确的List<T>
foreach (var myObject in myObjectsUnsorted)
{
myObjects[myObject.Category].Add(myObject);
}
如何在没有循环的情况下做到这一点?例如使用 LINQ 扩展方法?我在这个例子中的其他对象是用.Select() 创建的,但这并不真正符合最后一个foreach 的要求。
【问题讨论】:
-
所以你基本上想用一个表达式在一个列表上做一个 for/each(WHERE) ?
-
Dictionary<K, V>是否已经存在并且您只想追加?如果是这样,我认为没有理由不使用foreach。
标签: c# linq dictionary foreach