Array.ConvertAll<TInput,TOutput> Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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ü dizisi.
Özel durumlar
Örnekler
Aşağıdaki kod örneği, bir yapıyı bir yapıya dönüştüren adlı PointFToPoint
bir PointF Point yöntemi tanımlar. Örnek daha sonra bir yapı dizisi PointF oluşturur, yöntemi temsil PointFToPoint
etmek için bir Converter<PointF, Point>
temsilci (Converter(Of PointF, Point)
Visual Basic) oluşturur ve temsilciyi ConvertAll yönteme geçirir. yöntemi, ConvertAll 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 pointFToPoint
işlev örtük olarak temsilciye Converter<PointF, Point>
dönüştürülür. Her iki liste de görüntülenir.
#using <System.Drawing.dll>
using namespace System;
using namespace System::Drawing;
using namespace System::Collections::Generic;
Point PointFToPoint(PointF pf)
{
return Point((int) pf.X, (int) pf.Y);
};
void main()
{
// Create an array of PointF objects.
array<PointF>^ apf = {
PointF(27.8F, 32.62F),
PointF(99.3F, 147.273F),
PointF(7.5F, 1412.2F) };
// Display each element in the PointF array.
Console::WriteLine();
for each(PointF p in apf)
{
Console::WriteLine(p);
}
// Convert each PointF element to a Point object.
array<Point>^ ap =
Array::ConvertAll(apf,
gcnew Converter<PointF, Point>(PointFToPoint)
);
// Display each element in the Point array.
Console::WriteLine();
for each(Point p in ap)
{
Console::WriteLine(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}
*/
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 ve burada n
değeridir Length array
.
F# dilinde bunun yerine genellikle Array.map işlevi kullanılır.