2012-10-26 2 views
0

C에서 # 을 호출하고 다음 루프에서 매우 동일한 행에 액세스 할 수있는 다음 메소드가 작동하는 것처럼 보입니다.vb.net은 현재 루핑중인 streamreader.readline에 액세스합니다.

내가 시도한 모든 변환기를 사용하더라도 vb.net에서는 작동하지 않습니다.

이 하나가 완전히 폭탄과 슬로우는 http://converter.telerik.com/

이 하나의 "페이지를 찾을 수 없습니다"

http://www.developerfusion.com/tools/convert/csharp-to-vb/?batchId=3356dd81-818a-43d1-8c23-be584e40d15e 결과 : InlineAssignHelper 내가 해달라고 뭔가

Dim line As String 
Dim score As Double = 0 
count = 0 
While (InlineAssignHelper(line, sr.ReadLine())) IsNot Nothing 
    score += Double.Parse(line) 
    count += 1 
End While 
averageScore = CDbl(inValue)/count 

.

+0

파일을 읽고 계십니까? 파일 이름이 있습니까? – Ryan

답변

2

당신은 대신 스트림, 당신은 산뜻한 방법을 System.IO.File.ReadLines을 사용할 수, 파일 이름이있는 경우 :와 마 - 루프를 사용

Dim averageScore = File.ReadLines(filename).Average(AddressOf Double.Parse) 
+1

LINQ 예제에서'Sum' 대신'Average'를 원한다고 생각합니다 :-) – sloth

+0

@ Mr.Steak : 죄송합니다! :) – Ryan

+0

이제 바보 같은'Select'을 없애고'File.ReadLines (filename) .Average (Function (x) Double.Parse (x))'와 et voilà : LINQ를 사용하는 것이 가장 좋습니다 :-) – sloth

0

을 : LINQ를

Dim score As Double = 0 
count = 0 

For Each line In File.ReadLines(filename) 
    score += Double.Parse(sr.ReadLine()) 
    count += 1 
Next 

averageScore = CDbl(inValue)/count 

또는 사용 다음과 같이 exit 문을 사용하십시오.

대답은 메모리 사용량에 매우 의존하며 전체 파일을 메모리에 저장하지 않아도됩니다.

관련 문제