Прочитать на английском

Поделиться через


Array.ConvertAll<TInput,TOutput> Метод

Определение

Преобразует массив одного типа в массив другого типа.

public static TOutput[] ConvertAll<TInput,TOutput> (TInput[] array, Converter<TInput,TOutput> converter);

Параметры типа

TInput

Тип элементов исходного массива.

TOutput

Тип элементов массива назначения.

Параметры

array
TInput[]

Одномерный массив Array, индексация которого начинается с нуля и который преобразуется в целевой тип.

converter
Converter<TInput,TOutput>

Объект Converter<TInput,TOutput>, преобразующий каждый элемент из одного типа в другой.

Возвращаемое значение

TOutput[]

Массив целевого типа, содержащий преобразованные элементы исходного массива.

Исключения

array имеет значение null.

-или-

converter имеет значение null.

Примеры

В следующем примере кода определяется метод с именем PointFToPoint , который преобразует PointF структуру в структуру Point . Затем в примере создается массив PointF структур, создается Converter<PointF, Point> делегат (Converter(Of PointF, Point)в Visual Basic) для представления PointFToPoint метода и передается делегат в ConvertAll метод. Метод ConvertAll передает каждый элемент входного списка методу PointFToPoint и помещает преобразованные элементы в новый список Point структур. В примере pointFToPoint F# функция неявно приводится к делегату Converter<PointF, Point> . Отображаются оба списка.

using System;
using System.Drawing;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create an array of PointF objects.
        PointF[] apf = {
            new PointF(27.8F, 32.62F),
            new PointF(99.3F, 147.273F),
            new PointF(7.5F, 1412.2F) };

        // Display each element in the PointF array.
        Console.WriteLine();
        foreach( PointF p in apf )
            Console.WriteLine(p);

        // Convert each PointF element to a Point object.
        Point[] ap = Array.ConvertAll(apf,
            new Converter<PointF, Point>(PointFToPoint));

        // Display each element in the Point array.
        Console.WriteLine();
        foreach( Point p in ap )
        {
            Console.WriteLine(p);
        }
    }

    public static Point PointFToPoint(PointF pf)
    {
        return new Point(((int) pf.X), ((int) pf.Y));
    }
}

/* This code example produces the following output:

{X=27.8, Y=32.62}
{X=99.3, Y=147.273}
{X=7.5, Y=1412.2}

{X=27,Y=32}
{X=99,Y=147}
{X=7,Y=1412}
 */

Комментарии

Делегат Converter<TInput,TOutput> метода, который преобразует объект в целевой тип. array Элементы передаются по отдельностиConverter<TInput,TOutput>, а преобразованные элементы сохраняются в новом массиве.

Источник array остается неизменным.

Этот метод является операцией O(n), где n находится .Length array

В F# функция Array.map обычно используется.

Применяется к

См. также раздел