홈>
IReadOnlyList<T>
를 사용해야합니다
내 필요에 가장 잘 맞기 때문에 반환 매개 변수로 사용할 수 있지만 아래 예제에서 볼 수 있듯이 실제로 읽기 전용이 아닌 경우 래핑 된 목록을 수정할 수 있습니다.
using System.Collections.Generic;
using System.Collections.Immutable;
public class Test
{
public Test()
{
// return an IReadOnlyList that wraps a List, we can modify content
var list1 = GetList1();
if (list1 is List<Section> sections1) // can be true
{
sections1.Clear();
}
// return an IReadOnlyList that wraps an ImmutableArray, we cannot modify content
var list2 = GetList2();
if (list2 is List<Section> sections2) // never true
{
sections2.Clear();
}
}
public static IReadOnlyList<Section> GetList1()
{
return new List<Section> {new Section()};
}
public static IReadOnlyList<Section> GetList2()
{
return ImmutableArray.Create(new Section());
}
}
public struct Section
{
}
문제 :
ImmutableArray<T>
읽기 전용이므로 멋지게 보입니다. 유일한 것은 전체 기능을 갖춘 클래스 : 사본을 생성하는 변경을 허용합니다.
따라서
IReadOnlyList<T>
를 돌려 주겠다
의도는 간단하지만 수정 가능한 목록 문제를 해결해야합니다.
질문 :
와이즈 비즈를 반환합니다
ImmutableArray<T>
로
올바른 접근 방식입니까?
그렇지 않다면 어떻게해야하는지 제안 할 수 있습니까?
IReadOnlyList<T>
- 답변 # 1
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
이게
IReadOnlyList
가 아니야 작동IReadOnlyList 인터페이스
와이즈 비즈 와이즈 비즈 숫자와 순서가있는 목록을 나타냅니다. 목록 요소 중 읽기 전용입니다.목록 요소의 내용이 아닙니다 읽기 전용이어야합니다.와이즈 비즈를 원한다면 와이즈 비즈 체크 아웃
System.Collections.Immutable 네임 스페이스
와이즈 비즈