데이터 구조로 작동하는 객체를 반복합니다. 구조체는 KeyPairValue를 포함하는 목록 일 뿐이며 foreach 루프를 사용할 때 Value를 얻을 수 있는지 궁금합니다.foreach 반환 값 변경
답변
당신은 당신은 K와 V의 실제 유형에 대체 할 수있는이
public IEnumerable<V> EnumerateValues(IEnumerable<KeyValuePair<K, V>> list)
{
foreach (var kv in list) yield return kv.Value;
}
같은 것을 구현, 또는 일반적인 기능을 만들기 위해 작은 변화에 대한 코멘트를 볼 수 있습니다.
'var kv in list'에 수정해야한다. 또 다른 문제가있다. 'EnumerateValues
또한 'List'대신에'IEnumerable'을 사용하지 않는 것이 더 일반적입니다. –
@OrelEraki : 'var'로 잡아줘서 고마워. 나는 원래 자신이 구체적인 유형으로 들어가기를 원했고, 자신의 경험 수준에 따라 더 쉬울 수도 있습니다. 내 반응을 업데이트하여이를 알려주고 자신의 의견을 지적하여 일반화하도록 할 것입니다. –
Eric J의 답변을 확장하려면 사용자 정의 컬렉션의 작동 방식을 완전히 바꾸려면 몇 가지 작업을 수행 할 수 있습니다. 내 데이터 구조는 이미 비공개 목록을 보유하고 있으므로 값으로 전달할 필요가 없습니다. 다음은 컬렉션을 반복 할 때 상관없이 원하는대로 반환합니다.
public IEnumerable<V> EnumerateValues()
{
foreach (var kv in privateList) yield return kv.Value;
}
public IEnumerator<KeyValuePair<K, V>> GetEnumerator()
{
return EnumerateValues().GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
(나는 확실히 많은 사람들이 이미 알고 있어요,하지만 난뿐만 아니라 단지 경우 다른 사람에 확장 할 수있다 내기 때문에 난 아무것도 찾을 수 없습니다 비슷한 문제가 있습니다.)
- 1. PHP foreach 변경 배열 값
- 2. 함수 반환 값 변경
- 3. 반환 값 변경
- 4. EasyAutocomplete : 반환 된 값 변경
- 5. foreach 문을 통해 배열 값 변경 VB.net
- 6. 스레드에서 변경/초기화 된 반환 값
- 7. 날짜 변경() ASP에서 프로그래밍 방식으로 반환 값
- 8. Parallel ForEach 또는 For 루프 내의 반환 값 및 키워드
- 9. 액세스 foreach 루프 값
- 10. 다중 foreach 값 저장
- 11. knockout foreach 계산 값
- 12. forEach 루프의 상태 변경
- 13. for foreach 루프 변경
- 14. Foreach 대 요소 변경
- 15. 반환 작업의 반환 값
- 16. 배열에서 값 반환
- 17. 반환 값
- 18. 반환 값
- 19. 반환 값
- 20. 반환 값
- 21. 반환 값
- 22. 반환 값
- 23. 반환 값
- 24. 반환 값
- 25. 반환 값
- 26. 반환 값
- 27. 반환 값
- 28. 반환 값
- 29. 반환 값
- 30. 원격 Powershell 반환 값
일부 코드 수도 원하는 것을 설명하는 데 도움이됩니다. – hatchet
'myKeyValuePair.Value' –
아니요, 당신은'foreach'에게 그렇게 할 수는 없지만'foreach'를 사용하여 반복하기 전에 linq'Select' 문을 사용하여리스트를 처리 할 수 있습니다 : foreach (var 값은 mylist.Select (t => t.Value))' – Blorgbeard