IEnumerator 변수를 사용하면 람다 함수를 사용할 수 있으며 MoveNext()로 진행하고 호출 할 때마다 현재 값을 반환합니까?열거자를 전진시키고 람다에서 그 값을 얻을 수 있습니까?
1
A
답변
4
e => e.MoveNext() ? e.Current : null
는이 열거의 발전과 현재 값을 반환하고, 열거가 완료되면 널 (null)을 반환합니다.
1
람다 표현식은 복잡한 문장을 포함 할 수 있습니다, 그래서 당신은 다음과 같은 작업을 수행 할 수
Func<IEnumerator, object> f = ie => { ie.MoveNext(); return ie.Current; };
0
여기를 클릭하십시오.
List<string> strings = new List<string>()
{
"Hello", "I", "am", "a", "list", "of", "strings."
};
IEnumerator<string> e = strings.GetEnumerator();
Func<string> f =() => e.MoveNext() ? e.Current : null;
for (; ;)
{
string str = f();
if (str == null)
break;
Console.Write(str + " ");
}
IEnumerator
의 요점은 당신이 이미 그것을 다루는 문법 설탕을 얻을 수 있습니다 :
foreach (string str in strings)
Console.Write(str + " ");
심지어 열거 직접이 경우 청소기 보이는 처리 :
while (e.MoveNext())
Console.Write(e.Current + " ");
0
확장 Abe의 솔루션에서 클로저를 사용하여 열거 자에 대한 참조를 보유 할 수도 있습니다.
var iter = ((IEnumerable<char>)"hello").GetEnumerator();
//with closure
{
Func<object> f =
() =>
{
iter.MoveNext();
return iter.Current;
};
Console.WriteLine(f());
Console.WriteLine(f());
}
//without closure
{
Func<IEnumerator, object> f =
ie =>
{
ie.MoveNext();
return ie.Current;
};
Console.WriteLine(f(iter));
Console.WriteLine(f(iter));
}
관련 문제
- 1. VB.NET에서 SecureString 값을 안전하게 얻을 수 있습니까?
- 2. json 결과에서이 값을 어떻게 얻을 수 있습니까?
- 3. 어떻게이 두 값을 ASP에서 얻을 수 있습니까?
- 4. 람다에서 표현식 트리로 변환
- 5. objective-C에서는 NSString에 하나의 문자가 있습니다. 어떻게 그 편지의 ASCII 값을 얻을 수 있습니까? 예를 들어
- 6. 어떻게 mysql에서 n 번째 행의 값을 얻을 수 있습니까?
- 7. 깊이 텍스처에서 깊이 값을 어떻게 얻을 수 있습니까?
- 8. MVC의 람다에서 HTML 렌더링
- 9. 리퍼러를 얻을 수 있습니까?
- 10. 어디에서 wlWriterEditableSmartContent를 얻을 수 있습니까?
- 11. 어떻게 onChangeEvent_sooner_를 얻을 수 있습니까?
- 12. ajaxcall 함께 게시 값을 얻을 수 없습니다.
- 13. 테이블에 INSERT하면 자동으로 증가하는 기본 인덱스의 값을 얻을 수 있습니까?
- 14. 어떻게 비슷한 열 값을 가진 행을 얻을 수 있습니까
- 15. PIL을 사용하여 두 자간 자간 값을 얻을 수 있습니까?
- 16. 어떻게 자바에서 내 Enum에서 정수, 문자열 값을 얻을 수 있습니까?
- 17. 방금 삽입 한 레코드의 pkey 값을 얻을 수 있습니까 (autoincrement)?
- 18. telerik radgrid GridView1_ItemInserted - 반환 값을 얻을 수 있습니까?
- 19. 어쨌든 아약스를 통해 PHP 배열의 값을 얻을 수 있습니까?
- 20. 어떻게 asp.net MVC에 게시하지 않고 양식의 값을 얻을 수 있습니까?
- 21. 내 HomeController의 다른 컨트롤러에서 간단한 bool 값을 얻을 수 있습니까?
- 22. mysql 데이터베이스에서 가장 많은 양의 값을 얻을 수 있습니까?
- 23. 아래 XML 내용의 값을 어떻게 얻을 수 있습니까?
- 24. 어떻게 해시 값에서 원래 값을 얻을 수 있습니까?
- 25. 문자열에서 PTypeInfo를 얻을 수 있습니까?
- 26. 자바 스크립트가 작동을위한 값을 얻을 수 없습니다.
- 27. 데이터베이스에서 값을 얻을 JQuery와
- 28. C# 문을 람다에서 VB로 변환
- 29. 이 개체는 정수형입니다. 5 줄 미만의 코드에서 그 가치를 얻을 수 있습니까?
- 30. QToolBar는 그 위치를 어떻게 알 수 있습니까?