Extreme Optimization™: Complexity made simple.

Math and Statistics
Libraries for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Partners
    • Contact us
Introduction
Deployment Guide
Nuget packages
Configuration
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Data Analysis Library User's GuideData Analysis Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand Data Access Library User's GuideData Access Library User's Guide
Expand ReferenceReference
  • Extreme Optimization
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Nuget packages
    • Configuration
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Data Access Library User's Guide
    • Reference
  • Reference
    • Extreme
    • Extreme.Collections
    • Extreme.Data
    • Extreme.Data.Json
    • Extreme.Data.Matlab
    • Extreme.Data.R
    • Extreme.Data.Stata
    • Extreme.Data.Text
    • Extreme.DataAnalysis
    • Extreme.DataAnalysis.Linq
    • Extreme.DataAnalysis.Models
    • Extreme.Mathematics
    • Extreme.Mathematics.Algorithms
    • Extreme.Mathematics.Calculus
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations
    • Extreme.Mathematics.Curves
    • Extreme.Mathematics.Curves.Nonlinear
    • Extreme.Mathematics.Distributed
    • Extreme.Mathematics.EquationSolvers
    • Extreme.Mathematics.Generic
    • Extreme.Mathematics.LinearAlgebra
    • Extreme.Mathematics.LinearAlgebra.Implementation
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners
    • Extreme.Mathematics.Optimization
    • Extreme.Mathematics.Optimization.LineSearches
    • Extreme.Mathematics.Random
    • Extreme.Mathematics.SignalProcessing
    • Extreme.Providers
    • Extreme.Providers.InteropServices
    • Extreme.Statistics
    • Extreme.Statistics.Distributions
    • Extreme.Statistics.Multivariate
    • Extreme.Statistics.Tests
    • Extreme.Statistics.TimeSeriesAnalysis
  • Extreme.DataAnalysis.Linq
    • LinqExtensions Class
    • LinqExtensions.DataFrameGrouping(TKey, R, C) Class
    • LinqExtensions.DataFrameLookup(TKey, R, C) Class
    • LinqExtensions.Grouping(TKey, T) Class
    • LinqExtensions.Lookup(TKey, T) Class
  • LinqExtensions Class
    • Methods
  • Methods
    • Aggregate Method Overloads
    • Concat Method Overloads
    • GroupBy Method Overloads
    • Select Method Overloads
    • SelectMany Method Overloads
    • ToLookup Method Overloads
    • Where Method Overloads
  • GroupBy Method Overloads
    • GroupBy(R, C, TKey) Method (DataFrame(R, C), Func(DataFrameRow(R, C), TKey))
    • GroupBy(T, TKey) Method (Vector(T), Func(T, TKey))
    • GroupBy(R, C, TKey) Method (DataFrame(R, C), Func(DataFrameRow(R, C), TKey), IEqualityComparer(TKey))
    • GroupBy(R, C, TKey, TResult) Method (DataFrame(R, C), Func(DataFrameRow(R, C), TKey), Func(TKey, IEnumerable(DataFrameRow(R, C)), TResult))
    • GroupBy(R, C, TKey, TElement) Method (DataFrame(R, C), Func(DataFrameRow(R, C), TKey), Func(DataFrameRow(R, C), TElement))
    • GroupBy(T, TKey) Method (Vector(T), Func(T, TKey), IEqualityComparer(TKey))
    • GroupBy(T, TKey, TElement) Method (Vector(T), Func(T, TKey), Func(T, TElement))
    • GroupBy(T, TKey, TResult) Method (Vector(T), Func(T, TKey), Func(TKey, IEnumerable(T), TResult))
    • GroupBy(R, C, TKey, TResult) Method (DataFrame(R, C), Func(DataFrameRow(R, C), TKey), Func(TKey, IEnumerable(DataFrameRow(R, C)), TResult), IEqualityComparer(TKey))
    • GroupBy(R, C, TKey, TElement) Method (DataFrame(R, C), Func(DataFrameRow(R, C), TKey), Func(DataFrameRow(R, C), TElement), IEqualityComparer(TKey))
    • GroupBy(R, C, TKey, TElement, TResult) Method (DataFrame(R, C), Func(DataFrameRow(R, C), TKey), Func(DataFrameRow(R, C), TElement), Func(TKey, IEnumerable(TElement), TResult))
    • GroupBy(T, TKey, TElement) Method (Vector(T), Func(T, TKey), Func(T, TElement), IEqualityComparer(TKey))
    • GroupBy(T, TKey, TResult) Method (Vector(T), Func(T, TKey), Func(TKey, IEnumerable(T), TResult), IEqualityComparer(TKey))
    • GroupBy(T, TKey, TElement, TResult) Method (Vector(T), Func(T, TKey), Func(T, TElement), Func(TKey, IEnumerable(TElement), TResult))
    • GroupBy(R, C, TKey, TElement, TResult) Method (DataFrame(R, C), Func(DataFrameRow(R, C), TKey), Func(DataFrameRow(R, C), TElement), Func(TKey, IEnumerable(TElement), TResult), IEqualityComparer(TKey))
    • GroupBy(T, TKey, TElement, TResult) Method (Vector(T), Func(T, TKey), Func(T, TElement), Func(TKey, IEnumerable(TElement), TResult), IEqualityComparer(TKey))
  • GroupBy(T, TKey, TElement, TResult) Method (Vector(T), Func(T, TKey), Func(T, TElement), Func(TKey, IEnumerable(TElement), TResult), IEqualityComparer(TKey))

LinqExtensionsGroupByT, TKey, TElement, TResult Method (VectorT, FuncT, TKey, FuncT, TElement, FuncTKey, IEnumerableTElement, TResult, IEqualityComparerTKey)

Extreme Optimization Numerical Libraries for .NET Professional
Groups the elements of a vector according to the specified key selector function and creates a result value from each group and its key. Key values are compared using the specified comparer, and the elements of each group are projected using the specified function.

Namespace:  Extreme.DataAnalysis.Linq
Assembly:  Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.1
Syntax

C#
VB
C++
F#
Copy
public static Vector<TResult> GroupBy<T, TKey, TElement, TResult>(
	this Vector<T> vector,
	Func<T, TKey> keySelector,
	Func<T, TElement> elementSelector,
	Func<TKey, IEnumerable<TElement>, TResult> resultSelector,
	IEqualityComparer<TKey> comparer
)
<ExtensionAttribute>
Public Shared Function GroupBy(Of T, TKey, TElement, TResult) ( 
	vector As Vector(Of T),
	keySelector As Func(Of T, TKey),
	elementSelector As Func(Of T, TElement),
	resultSelector As Func(Of TKey, IEnumerable(Of TElement), TResult),
	comparer As IEqualityComparer(Of TKey)
) As Vector(Of TResult)
public:
[ExtensionAttribute]
generic<typename T, typename TKey, typename TElement, typename TResult>
static Vector<TResult>^ GroupBy(
	Vector<T>^ vector, 
	Func<T, TKey>^ keySelector, 
	Func<T, TElement>^ elementSelector, 
	Func<TKey, IEnumerable<TElement>^, TResult>^ resultSelector, 
	IEqualityComparer<TKey>^ comparer
)
[<ExtensionAttribute>]
static member GroupBy : 
        vector : Vector<'T> * 
        keySelector : Func<'T, 'TKey> * 
        elementSelector : Func<'T, 'TElement> * 
        resultSelector : Func<'TKey, IEnumerable<'TElement>, 'TResult> * 
        comparer : IEqualityComparer<'TKey> -> Vector<'TResult> 

Parameters

vector
Type: Extreme.MathematicsVectorT
A vector whose elements to group.
keySelector
Type: SystemFuncT, TKey
A function to extract the key for each element.
elementSelector
Type: SystemFuncT, TElement
A function that maps each input element to an element in a grouping.
resultSelector
Type: SystemFuncTKey, IEnumerableTElement, TResult
A function that maps each group to a final result.
comparer
Type: System.Collections.GenericIEqualityComparerTKey
An object that compares two keys for equality.

Type Parameters

T
The type of the elements of the vector.
TKey
The type of the keys.
TElement
The type of the elements in each grouping.
TResult
The type of the final result for each group.

Return Value

Type: VectorTResult
A vector of elements of type TResult where each element is obtained by applying resultSelector to each group resulting from using keySelector to obtain the key and elementSelector to obtain the values on each element of vector.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type VectorT. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).
See Also

Reference

LinqExtensions Class
GroupBy Overload
Extreme.DataAnalysis.Linq Namespace

Copyright (c) 2004-2021 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2021, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.