Files
mirror-processhacker/trunk/ProcessHacker.Common/Linq/Query Operators/Grouping Operators.cs
T
wj32 3a445ba3de * added LINQBridge; TaskbarLib now compiles
* re-added taskbar icon overlays and progress bars
* got rid of the token button in ThreadWindow; moved to ThreadList context menu

git-svn-id: svn://svn.code.sf.net/p/processhacker/code@1948 21ef857c-d57f-4fe0-8362-d861dc6d29cd
2009-09-26 07:05:49 +00:00

42 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
namespace System.Linq
{
public static partial class Enumerable
{
public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey> (
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector)
{
return source.GroupBy (keySelector, x => x, null);
}
public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey> (
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector,
IEqualityComparer<TKey> comparer)
{
return source.GroupBy (keySelector, x => x, comparer);
}
public static IEnumerable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement> (
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector,
Func<TSource, TElement> elementSelector)
{
return source.GroupBy (keySelector, elementSelector, null);
}
public static IEnumerable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement> (
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector,
Func<TSource, TElement> elementSelector,
IEqualityComparer<TKey> comparer)
{
return Lookup<TKey, TElement>.Create<TSource> (source, keySelector, elementSelector, comparer);
}
}
}