List<T>.ConvertAll<TOutput>(Converter<T,TOutput>) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
현재 List<T>의 요소를 다른 형식으로 변환하고 변환된 요소를 포함하는 목록을 반환합니다.
public:
generic <typename TOutput>
System::Collections::Generic::List<TOutput> ^ ConvertAll(Converter<T, TOutput> ^ converter);
public System.Collections.Generic.List<TOutput> ConvertAll<TOutput> (Converter<T,TOutput> converter);
member this.ConvertAll : Converter<'T, 'Output> -> System.Collections.Generic.List<'Output>
Public Function ConvertAll(Of TOutput) (converter As Converter(Of T, TOutput)) As List(Of TOutput)
형식 매개 변수
- TOutput
대상 배열 요소의 형식입니다.
매개 변수
- converter
- Converter<T,TOutput>
각 요소를 한 형식에서 다른 형식으로 변환하는 Converter<TInput,TOutput> 대리자입니다.
반환
현재 List<T>에서 변환된 요소를 포함하는 대상 유형의 List<T>입니다.
예외
converter
이(가) null
인 경우
예제
다음 예제에서는 구조체를 구조체로 PointF 변환하는 라는 PointFToPoint
메서드를 Point 정의합니다. 만듭니다는 List<T> 의 PointF 구조를 만들고를 Converter\<PointF, Point>
대리자 (Converter(Of PointF, Point)
Visual Basic의)를 나타내는 PointFToPoint
메서드를 대리자를 전달 하 고는 ConvertAll 메서드. ConvertAll 메서드는 입력 목록의 각 요소에 전달 합니다 PointFToPoint
메서드를 새 목록으로 변환 된 요소를 배치 하 고 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()
{
List<PointF>^ lpf = gcnew List<PointF>();
lpf->Add(PointF(27.8F, 32.62F));
lpf->Add(PointF(99.3F, 147.273F));
lpf->Add(PointF(7.5F, 1412.2F));
Console::WriteLine();
for each(PointF p in lpf)
{
Console::WriteLine(p);
}
List<Point>^ lp =
lpf->ConvertAll<Point>(
gcnew Converter<PointF, Point>(PointFToPoint)
);
Console::WriteLine();
for each(Point p in lp)
{
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()
{
List<PointF> lpf = new List<PointF>();
lpf.Add(new PointF(27.8F, 32.62F));
lpf.Add(new PointF(99.3F, 147.273F));
lpf.Add(new PointF(7.5F, 1412.2F));
Console.WriteLine();
foreach( PointF p in lpf )
{
Console.WriteLine(p);
}
List<Point> lp = lpf.ConvertAll(
new Converter<PointF, Point>(PointFToPoint));
Console.WriteLine();
foreach( Point p in lp )
{
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}
*/
Imports System.Drawing
Imports System.Collections.Generic
Public Class Example
Public Shared Sub Main()
Dim lpf As New List(Of PointF)
lpf.Add(New PointF(27.8, 32.62))
lpf.Add(New PointF(99.3, 147.273))
lpf.Add(New PointF(7.5, 1412.2))
Console.WriteLine()
For Each p As PointF In lpf
Console.WriteLine(p)
Next
Dim lp As List(Of Point) = lpf.ConvertAll( _
New Converter(Of PointF, Point)(AddressOf PointFToPoint))
Console.WriteLine()
For Each p As Point In lp
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
' 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=28,Y=33}
'{X=99,Y=147}
'{X=8,Y=1412}
설명
는 Converter<TInput,TOutput> 개체를 대상 형식으로 변환하는 메서드의 대리자입니다. 현재 List<T> 요소는 개별적으로 대리자에게 Converter<TInput,TOutput> 전달되고 변환된 요소는 새 List<T>에 저장됩니다.
현재 List<T> 는 변경되지 않은 상태로 유지됩니다.
이 메서드는 O(n) 작업이며 여기서 n 은 입니다 Count.
적용 대상
추가 정보
.NET