Observable.MaxBy<TSource, TKey> Method (IObservable<TSource>, Func<TSource, TKey>)
Возвращает элементы в наблюдаемой последовательности с максимальным значением ключа.
Пространство имен:System.Reactive.Linq
Сборки: System.Reactive (в System.Reactive.dll)
Синтаксис
'Declaration
<ExtensionAttribute> _
Public Shared Function MaxBy(Of TSource, TKey) ( _
source As IObservable(Of TSource), _
keySelector As Func(Of TSource, TKey) _
) As IObservable(Of IList(Of TSource))
'Usage
Dim source As IObservable(Of TSource)
Dim keySelector As Func(Of TSource, TKey)
Dim returnValue As IObservable(Of IList(Of TSource))
returnValue = source.MaxBy(keySelector)
public static IObservable<IList<TSource>> MaxBy<TSource, TKey>(
this IObservable<TSource> source,
Func<TSource, TKey> keySelector
)
[ExtensionAttribute]
public:
generic<typename TSource, typename TKey>
static IObservable<IList<TSource>^>^ MaxBy(
IObservable<TSource>^ source,
Func<TSource, TKey>^ keySelector
)
static member MaxBy :
source:IObservable<'TSource> *
keySelector:Func<'TSource, 'TKey> -> IObservable<IList<'TSource>>
JScript does not support generic types and methods.
Параметры типа
- TSource
Тип источника.
- Tkey
Тип ключа.
Параметры
- source
Тип: System.IObservable<TSource>
Наблюдаемая последовательность для получения максимального количества элементов.
- keySelector
Тип: System.Func<TSource, TKey>
Функция селектора ключей.
Возвращаемое значение
Тип: System.IObservable<IList<TSource>>
Элементы в наблюдаемой последовательности с максимальным значением ключа.
Примечание об использовании
В Visual Basic и C# этот метод можно вызвать как метод экземпляра для любого объекта типа IObservable<TSource>. При вызове метода для экземпляра следует опускать первый параметр. Дополнительные сведения см. в разделе или .
Комментарии
Оператор MaxBy используется для получения элементов в последовательности, создающих максимальное значение ключа. Например, если последовательность была последовательностью всех процессов, выполняющихся на компьютере, оператор MaxBy можно использовать для возврата процессов, которые выделили большую часть физической памяти. Это демонстрируется в примере кода в этом разделе.
Примеры
В следующем примере кода создается наблюдаемая последовательность всех запущенных процессов на локальном компьютере. Затем оператор MaxBy используется для возврата наблюдаемой последовательности, содержащей список процессов, для которых выделено больше физической памяти. Сведения о процессе для процессов в списке записываются в окно консоли.
using System;
using System.Reactive.Linq;
using System.Diagnostics;
namespace Example
{
class Program
{
static void Main()
{
//*********************************************************************************************//
//*** Generate a sequence of processes running on the local machine. ***//
//*********************************************************************************************//
var seqProcesses = System.Diagnostics.Process.GetProcesses().ToObservable();
//*********************************************************************************************//
//*** Use the MaxBy operator to get a list of the processes that have the highest amount ***//
//*** of physical memory allocated. ***//
//*********************************************************************************************//
var maxWorkingSet = seqProcesses.MaxBy(p => p.WorkingSet64);
//*********************************************************************************************//
//*** Write the process information to the console window for the processes which have ***//
//*** allocated the most physical memory ***//
//*********************************************************************************************//
maxWorkingSet.Subscribe(maxList =>
{
foreach (Process process in maxList)
{
Console.WriteLine("\nDescription : {0}\n" +
"Filename : {1}\n" +
"Working Set : {2}",
process.MainModule.FileVersionInfo.FileDescription,
process.MainModule.FileName,
process.WorkingSet64);
}
});
Console.WriteLine("\nPress ENTER to exit...\n");
Console.ReadLine();
}
}
}
Приведенные ниже выходные данные были созданы в примере кода.
Description : Desktop Window Manager
Filename : C:\Windows\system32\Dwm.exe
Working Set : 363646976
Press ENTER to exit...