2017-12-05 8 views
0

람다 식에 익숙하지 않아 다음 코드를 vb.net으로 변환하는 데 문제가 있습니다. 특히 마지막 줄이 제 문제입니다. Teleric 코드 변환기는 마지막 줄 때문에 나를 도와주지 않습니다. 누군가 나를 도울 수 있을까요?C# 코드를 VB.net으로 변환 할 때의 문제

int[] numbers = { 1, 3, 4, 9, 2, 4 }; 
int numToRemove = 4; 
int numIndex = Array.IndexOf(numbers, numToRemove); 
numbers = numbers.Where((val, idx) => idx != numIndex).ToArray(); 
+0

무엇을 시도 했습니까? –

+0

https://stackoverflow.com/q/782566/1070452 및 https://stackoverflow.com/q/67916/1070452 및 그 외 많은 많은 코드 – Plutonix

답변

0

마지막 변수의 출력을 새 변수에 저장하면 Telerik로 변환이 작동합니다. 그럼 당신이 얻을 : VB6 이후 VB를 사용

Private numbers As Integer() = {1, 3, 4, 9, 2, 4} 
Private numToRemove As Integer = 4 
Private numIndex As Integer = Array.IndexOf(numbers, numToRemove) 
Private result = numbers.Where(Function(val, idx) idx <> numIndex) 
+0

코드의 특성상 이러한 * 아마도 *는 의미가 없습니다. 필드 (즉, Dim 대신 Private 수정 자). 또한 'result'는 원래의 C#에 존재하지 않습니다. OP가 배열에 결과를 저장 한 곳에서는 결과를 IEnumerable (Of Integer)에 저장합니다. '.ToArray()'는 그것을 훌륭하게 끝낼 것입니다 (어쨌든'numbers'에 다시 넣을 수도 있습니다). – djv

3

하지 -이 그래도 작동 (!) :

Dim numbers() = {1, 3, 4, 9, 2, 4} 
    Dim numToRemove As Integer = 4 
    Dim numIndex As Integer = Array.IndexOf(numbers, numToRemove) 
    numbers = numbers.Where(Function(ByVal val, ByVal idx) idx <> numIndex).ToArray() 

을 (그건 그냥 부인의 등 위하지 않을 수 있습니다 모범 사례 등!)