LINQ To Objects GroupBy方法如何工作?每个键的整个集合是否都有效?有没有办法对GroupBy方法说集合是否已排序?
如果做得明智,GroupBy 将在单次向前传递中发挥作用。基本的实现(不是他们的)类似于:
var data = new Dictionary<TKey, List<TValue>>(comparer);
foreach(var item in source) {
var key = keySelector(item);
List<TValue> list;
if(!data.TryGetValue(key, out list))
{
data.Add(key, list = new List<TValue>());
}
list.Add(itemSelector(item));
}
Run Code Online (Sandbox Code Playgroud)
基本上按键分组,为每个唯一键创建一个包含值的列表。
您可以执行诸如与上次看到的键进行比较之类的操作(以帮助排序数据),但是...您需要进行分析才能知道它是否值得。
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |