ToLookup
uses immediate execution, and returns an ILookup
which allows you to look the groups up by key.
GroupBy
uses deferred execution, and just returns you groups in the order in which each group was first encountered (so the first group will contain the first element of the source data, for example), with no idea of being able to look the groups up later by key. Each time you iterate over the results, it will have to group again.
Basically, which you should use depends on what you're going to do with the results. If you're just going to iterate over them a single time (e.g. for further transformation), GroupBy
is usually fine. If you want to keep them as a collection for multiple operations, the immediate nature of ToLookup
is useful.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…