Array.ConvertAll<TInput,TOutput> Yöntem

Tanım

Bir tür dizisini başka türde bir diziye dönüştürür.

public:
generic <typename TInput, typename TOutput>
 static cli::array <TOutput> ^ ConvertAll(cli::array <TInput> ^ array, Converter<TInput, TOutput> ^ converter);
public static TOutput[] ConvertAll<TInput,TOutput>(TInput[] array, Converter<TInput,TOutput> converter);
static member ConvertAll : 'Input[] * Converter<'Input, 'Output> -> 'Output[]
Public Shared Function ConvertAll(Of TInput, TOutput) (array As TInput(), converter As Converter(Of TInput, TOutput)) As TOutput()

Tür Parametreleri

TInput

Kaynak dizinin öğelerinin türü.

TOutput

Hedef dizinin öğelerinin türü.

Parametreler

array
TInput[]

Hedef türe dönüştürmek için tek boyutlu, sıfır tabanlı Array .

converter
Converter<TInput,TOutput>

Converter<TInput,TOutput> Her öğeyi bir türden başka bir türe dönüştüren bir.

Döndürülenler

TOutput[]

Kaynak diziden dönüştürülen öğeleri içeren hedef türün dizisi.

Özel durumlar

array, null'e eşittir.

-veya-

converter, null'e eşittir.

Örnekler

Aşağıdaki kod örneği, bir yapıyı bir yapıya dönüştüren PointFToPoint adlı PointF bir Point yöntemi tanımlar. Örnek daha sonra PointF yapılarından oluşan bir dizi oluşturur, Converter<PointF, Point> yöntemini temsil eden bir Converter(Of PointF, Point) temsilcisi (Visual Basic'de PointFToPoint) oluşturur ve temsilciyi ConvertAll yöntemine geçirir. ConvertAll yöntemi, giriş listesinin her öğesini yöntemine PointFToPoint geçirir ve dönüştürülen öğeleri yeni bir yapı listesine Point yerleştirir. F# örneğinde işlev örtük pointFToPoint olarak temsilciye Converter<PointF, Point> dönüştürülür. Her iki liste de görüntülenir.

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}
 */
open System
open System.Drawing
open System.Collections.Generic

let pointFToPoint (pf: PointF) =
    Point(int pf.X, int pf.Y)

// Create an array of PointF objects.
let apf =
    [| PointF(27.8f, 32.62f)
       PointF(99.3f, 147.273f)
       PointF(7.5f, 1412.2f) |]

// Display each element in the PointF array.
printfn ""
for p in apf do
    printfn $"{p}"

// Convert each PointF element to a Point object.
let ap = Array.ConvertAll(apf, pointFToPoint)
// let ap = Array.map pointFToPoint apf

// Display each element in the Point array.
printfn ""
for p in ap do
    printfn $"{p}"

// 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}
Imports System.Drawing
Imports System.Collections.Generic

Public Class Example
    Public Shared Sub Main()
        ' Create an array of PointF objects.
        Dim apf() As PointF = { _
            New PointF(27.8, 32.62), _
            New PointF(99.3, 147.273), _
            New PointF(7.5, 1412.2)  }

        ' Display each element in the PointF array.
        Console.WriteLine()
        For Each p As PointF In apf
            Console.WriteLine(p)
        Next
        
        ' Convert each PointF element to a Point object.
        Dim ap() As Point = Array.ConvertAll(apf, _
            New Converter(Of PointF, Point)(AddressOf PointFToPoint))

        ' Display each element in the Point array.
        Console.WriteLine()
        For Each p As Point In ap
            Console.WriteLine(p)
        Next
    End Sub

    Public Shared Function PointFToPoint(ByVal pf As PointF) _
        As Point

        Return New Point(CInt(pf.X), CInt(pf.Y))
    End Function
End Class
' The example produces the following output:
'       {X=27.8, Y=32.62}
'       {X=99.3, Y=147.273}
'       {X=7.5, Y=1412.2}
'       
'       {X=28,Y=33}
'       {X=99,Y=147}
'       {X=8,Y=1412}

Açıklamalar

Converter<TInput,TOutput>, bir nesneyi hedef türe dönüştüren bir yöntemin temsilcisidir. öğeleri array tek tek öğesine Converter<TInput,TOutput>geçirilir ve dönüştürülen öğeler yeni diziye kaydedilir.

Kaynak array değişmeden kalır.

Bu yöntem bir O(n) işlemidir; burada n değeridir Lengtharray.

F# dilinde array.map işlevi genellikle kullanılır.

Şunlara uygulanır

Ayrıca bkz.