데이터 형식 변환(Visual Basic)
변환 메서드는 입력 개체의 형식을 변경합니다.
LINQ 쿼리의 변환 작업은 다양한 애플리케이션에서 유용합니다. 예는 다음과 같습니다.
Enumerable.AsEnumerable 메서드는 표준 쿼리 연산자의 형식 사용자 지정 구현을 숨기는 데 사용될 수 있습니다.
Enumerable.OfType 메서드는 LINQ 쿼리에 대해 매개 변수가 없는 컬렉션을 사용하도록 설정하는 데 사용될 수 있습니다.
Enumerable.ToArray, Enumerable.ToDictionary, Enumerable.ToList, Enumerable.ToLookup 메서드는 쿼리가 열거될 때까지 연기하는 대신 강제로 쿼리를 즉시 실행하는 데 사용될 수 있습니다.
메서드
다음 표에는 데이터-형식 변환을 수행하는 표준 쿼리 연산자 메서드가 나와 있습니다.
이 표에서 이름이 "As"로 시작하는 변환 메서드는 소스 컬렉션의 정적 형식을 변경하지만 열거하지는 않습니다. 이름이 "To"로 시작하는 메서드는 소스 컬렉션을 열거하고 항목을 해당하는 컬렉션 형식에 삽입합니다.
메서드 이름 | 설명 | Visual Basic 쿼리 식 구문 | 추가 정보 |
---|---|---|---|
AsEnumerable | IEnumerable<T>로 형식화된 입력을 반환합니다. | 해당 없음. | Enumerable.AsEnumerable |
AsQueryable | (제네릭) IEnumerable을 (제네릭) IQueryable로 변환합니다. | 해당 없음. | Queryable.AsQueryable |
캐스트 | 컬렉션의 요소를 지정된 형식으로 캐스트합니다. | From … As … |
Enumerable.Cast Queryable.Cast |
OfType | 지정된 형식으로 캐스트할 수 있는지 여부에 따라 값을 필터링합니다. | 해당 없음. | Enumerable.OfType Queryable.OfType |
ToArray | 컬렉션을 배열로 변환합니다. 이 메서드는 쿼리를 강제로 실행합니다. | 해당 없음. | Enumerable.ToArray |
ToDictionary | 키 선택기 함수에 따라 Dictionary<TKey,TValue>에 요소를 배치합니다. 이 메서드는 쿼리를 강제로 실행합니다. | 해당 없음. | Enumerable.ToDictionary |
ToList | 컬렉션을 List<T>로 변환합니다. 이 메서드는 쿼리를 강제로 실행합니다. | 해당 없음. | Enumerable.ToList |
ToLookup | 키 선택기 함수에 따라 Lookup<TKey,TElement>(일 대 다 사전)에 요소를 배치합니다. 이 메서드는 쿼리를 강제로 실행합니다. | 해당 없음. | Enumerable.ToLookup |
쿼리 식 구문 예제
다음 코드 예제에서는 From As
절을 사용하여 하위 형식에서만 사용할 수 있는 멤버에 액세스하기 전에 형식을 하위 형식으로 캐스팅합니다.
Class Plant
Public Property Name As String
End Class
Class CarnivorousPlant
Inherits Plant
Public Property TrapType As String
End Class
Sub Cast()
Dim plants() As Plant = {
New CarnivorousPlant With {.Name = "Venus Fly Trap", .TrapType = "Snap Trap"},
New CarnivorousPlant With {.Name = "Pitcher Plant", .TrapType = "Pitfall Trap"},
New CarnivorousPlant With {.Name = "Sundew", .TrapType = "Flypaper Trap"},
New CarnivorousPlant With {.Name = "Waterwheel Plant", .TrapType = "Snap Trap"}}
Dim query = From plant As CarnivorousPlant In plants
Where plant.TrapType = "Snap Trap"
Select plant
Dim sb As New System.Text.StringBuilder()
For Each plant In query
sb.AppendLine(plant.Name)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' Venus Fly Trap
' Waterwheel Plant
End Sub
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET