Array.ConvertAll<TInput,TOutput> 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
한 형식의 배열을 다른 형식의 배열로 변환합니다.
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()
형식 매개 변수
- TInput
소스 배열 요소의 형식입니다.
- TOutput
대상 배열 요소의 형식입니다.
매개 변수
- array
- TInput[]
대상 형식으로 변환할 1차원 Array(인덱스는 0부터 시작)입니다.
- converter
- Converter<TInput,TOutput>
한 형식에서 다른 형식으로 각 요소를 변환하는 Converter<TInput,TOutput>입니다.
반환
- TOutput[]
소스 배열에서 변환된 요소를 포함하는 대상 형식의 배열입니다.
예외
예제
라는 메서드를 정의 하는 다음 코드 예제 PointFToPoint
변환 하는 PointF 구조체를 Point 구조. 배열을 만듭니다 PointF 구조를 만들고는 Converter<PointF, Point>
대리자 (Converter(Of PointF, Point)
Visual Basic의)를 나타내는 PointFToPoint
메서드를 대리자를 전달 하 고는 ConvertAll 메서드. ConvertAll 메서드는 입력 목록의 각 요소에 전달 합니다 PointFToPoint
메서드를 새 목록으로 변환 된 요소를 배치 하 고 Point 구조. F# 예제 pointFToPoint
에서 함수는 암시적으로 대리자 Converter<PointF, Point>
로 캐스팅됩니다. 두 목록은 모두 표시 됩니다.
#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}
설명
개체 Converter<TInput,TOutput> 를 대상 형식으로 변환하는 메서드에 대한 대리자입니다. 요소는 array
개별적으로 전달되고 변환된 Converter<TInput,TOutput>요소는 새 배열에 저장됩니다.
원본 array
은 변경되지 않은 상태로 유지됩니다.
이 메서드는 O(n
) 연산이며 여기서 n
는 .의 array
Length 연산입니다.
F#에서 Array.map 함수는 일반적으로 대신 사용됩니다.