2012-09-27 3 views
2

VB.NET에서 람다 식을 사용하여 아래 코드를 수행 할 수 있다고 확신하지만 그렇게하는 예제를 찾을 수 없습니다. 이렇게하기위한 시도는 효과가 없었습니다.반복자 대신 VB.NET Lambda를 사용하려고 시도했습니다.

Me.Controls 컬렉션을 반복하고 두 개의 중첩 된 If (AndAlso와 결합 된 하나 일 수 있음)를 수행하고 조건이 일치하면 .Controls.Clear를 호출합니다.() 메소드를 호출한다.

For Each C As Control In Me.Controls 
     If TypeOf C Is GroupBox Then 
      If C.Name.StartsWith("grpScreen") Then 
       CType(C, GroupBox).Controls.Clear() 
      End If 
     End If 
    Next 

누군가 올바른 방향으로 나를 가리킬 수 있습니까?

크리스

답변

2

보십시오, 당신의 도움을 주셔서 감사합니다이

 Me.Controls.OfType(Of GroupBox)() _ 
     .Where(Function(c) c.Name.StartsWith("grpScreen")) _ 
     .ToList() _ 
     .ForEach(Sub(c) c.Controls.Clear()) 
+0

우아하고 간단한 - 감사합니다 – user1701982

관련 문제