IList<T>
에서 작동하는 Java의 List.subList()
과 동일한 .NET이 있습니까?.NET의 ListList()에 상응하는 .NET?
답변
이다, 42, 7 인쇄됩니다 : Kamarey가 지적한대로, 당신은 읽기 전용보기를 할 수 있습니다 LINQ
list.Skip(fromRange).Take(toRange - fromRange)
일반 List<T>
의 경우 GetRange(int, int)
메서드입니다.
편집 : 원본의 '보기'가 아닌 얕은 사본임을 유의하십시오. 나는 C#이 정확한 기능을 제공한다고 생각하지 않는다.
Edit2가 :
List<int> integers = new List<int>() { 5, 6, 7, 8, 9, 10, 11, 12 };
IEnumerable<int> view = integers.Skip(2).Take(3);
integers[3] = 42;
foreach (int i in view)
// output
위
MSDN 설명서 (http://msdn.microsoft.com/en-us/library/21k0e39c.aspx)에서 GetRange()는 얕은 복사본을 반환하고 subList()는 뷰 (즉, 뷰)를 반환합니다. subList()에 대한 변경 사항은 원래 목록에 반영됩니다!) –
네가 옳다. 이것이 정확한 요구 사항인지 확실하지 않지만 그것을 반영하도록 내 대답을 수정하겠습니다. – Razzie
GetRange
9. 사용하여 대답
다시 :보기와 달리 얕은 사본을 반환하기 때문에 똑같은 것은 아닙니다. 뷰를 반환하면 (예를 들어 list.subList (x, y) .clear()) 쉽게 작성할 수 있기 때문에 RemoveRange() 메서드를 제공 할 필요가 없습니다. –
정직하게 말하면 나는 이점을 실제로 볼 수 없다고 말해야합니다. 또한 removeRange() 및 subList.clear()는 동일한 작업을하는 것처럼 들리지 않습니다. 삭제 작업은 범위를 제거하는 것과 동일하지 않아야합니다. 그러나 오 잘 :-) – Razzie
subList()가 뷰를 원본 목록으로 복사하고 복사본을 반환하지 않는다면 someList.subList (1,3) .clear()가 원래 목록에서 개체를 제거하십시오. 그리고 가장 중요한 부분은 더 좋든 그렇지 않든, subList()와 GetRange()는 똑같은 일을하지 않으므로 동등한 표현으로 사용해서는 안됩니다 (적어도 면책 조항이없는 것은 아닙니다). –
- 1. Java에 상응하는 .NET .NET System.InvalidOperationException
- 2. 파이썬 상응하는
- 3. .NET의 .NET, ~/폴더가 잘못 되었나요? .NET에서
- 4. .NET의 GetPrivateProfileString
- 5. .NET의 java.lang.IllegalStateException?
- 6. T-SQL의 상응하는 두 숫자
- 7. .NET에서 DCOM에 상응하는 것이 있습니까?
- 8. . NET에 상응하는 MSXML2.XMLHTTP40
- 9. Django ORM 이에 상응하는
- 10. Ruby에 상응하는 ASP.NET Application_Start?
- 11. pyftpdlib에 상응하는 Java?
- 12. 오라클에 상응하는 mysqldump가 있습니까?
- 13. file_get_contents()에 상응하는 함수입니까?
- 14. 레일 상응하는 print_r
- 15. WeakHashMap에 상응하는 java.util.concurrent가 있습니까?
- 16. PHP에서 상응하는 기능은 무엇입니까?
- 17. 파이썬의 struct.pack에 상응하는 C#
- 18. VB.NET에 상응하는 C# "As"
- 19. Twitter Facebook에 상응하는 댓글들?
- 20. 스칼라 상응하는 자바에서
- 21. checkstyle에 상응하는 C++?
- 22. 부스트 상응하는 윈도우 C에서
- 23. DIV 이에 상응하는 HTML5
- 24. 베이스 상응하는 오라클
- 25. 루비에 상응하는 C++ Const?
- 26. postgresql에 상응하는 mysql errno
- 27. iPhone에 상응하는 Application.DoEvents();
- 28. Java에 상응하는 cin (C++)
- 29. fscanf()에 상응하는 C++?
- 30. .Net의 이전 버전과의 테스트
원본 목록 또는 범위 복사본으로 뷰를 반환합니까? –
List에서뿐 아니라 IList에서 작동합니다. 이것은 내가 찾고 있던 것입니다. – ripper234
@ Joachim Sauer : 이것은 쿼리이며 결과는 평가 방법에 따라 다릅니다. 평가하는 동안 일부 규칙을 적용하는 목록 요소를 반복합니다. 이것은 Java의 subList 함수에 대한 직접적인 아날로그가 아니며,이 경우에는 비교하는 것이 실수입니다. – Kamarey