c\#List 와 Dictionary 에서 자주 사용 하 는 동작

9243 단어 c#ListDictionary
본 고 는 개발 과정 에서 List 와 Dictionary 가 자주 사용 하 는 방법,예 를 들 어 증가,삭제,수정,검사,정렬 등 여러 가지 자주 사용 하 는 조작 을 모 았 다.
평소 개발 과정 에서 List 와 Dictionary 는 우리 가 자주 사용 하 는 데이터 구조 이 고 본인 의 기억력 이 떨 어 지 는 방법 이 있 기 때문에 장시간 사용 하지 않 아 도 잊 어 버 리 기 때문에 이 블 로 그 를 정리 하여 이 두 가지 데이터 구조 에 관 한 사용 방법 을 기록 하고 공유 하 는 데 사용 합 니 다.
리스트
먼저 이런 내용 에 대해 가장 권위 있 고 완전 하 게 소개 하 는 곳 은 바로마이크로소프트 공식 문서이다.그 안에 Lits 의 모든 속성 과 방법 을 전면적 이 고 상세 하 게 소개 하고 공식 문 서 를 자주 보 는 것 이 좋 은 습관 이다.본 고 는 일상적인 개발 과정 에서 상대 적 으로 자주 사용 하 는 방법 을 정리 하 는 동시에 예 를 들 것 이다.
1.추가 방법:
Add(T)---대상 을 List 끝 에 추가 합 니 다.
AddRange(IEnumerable)-지정 한 집합 요 소 를 List 끝 에 추가 합 니 다.
Insert(int 32,T)-요소 T 를 List 지정 색인 에 삽입 합 니 다.
InsertRange(int 32,IEnumerable)-집합 에 있 는 요 소 를 List 의 지정 한 색인 에 삽입 합 니 다.
2.삭제 방법:
Clear()---List 에서 모든 요 소 를 제거 합 니 다.
Remove(T)--List 에서 특정 대상 의 첫 번 째 일치 항목 을 제거 합 니 다.(값 종류 와 참조 형식 에 주의 하 십시오)
RemoveAll(Preaicate)-지정 한 술어 가 정의 하 는 조건 과 일치 하 는 모든 요 소 를 제거 합 니 다.예:

static void Main(string[] args)
        {
            List<test> a = new List<test>();
            for (int i = 0; i < 10; i++)
            {
                a.Add(new test(i, "   "));
            }

            a.RemoveAll(x => x.ID > 5);
        }

        public class test
        {
            public test(int a, string b)
            {
                ID = a;
                Name = b;
            }
            public int ID { get; set; }
            public string Name { get; set; }
        }
결과:ID 가 5 이상 인 모든 요 소 를 삭 제 했 습 니 다.
RemoveAt(Int 32)---List 의 지정 한 색인 에 있 는 요 소 를 제거 합 니 다.
RemoveRange(Int 32,Int 32)-List 에서 일련의 요 소 를 제거 합 니 다.
3.검색 방법:
List 의 검색 방법 에 대해 서 는 Linq 조회 표현 식 이나 Lambda 표현 식 을 사용 하 는 것 을 권장 합 니 다.박문 을 참고 하 십시오.C\#LINQ 조회 표현 식 용법 대응 LAMBDA 표현 식
Index Of(T)-지정 한 대상 을 검색 하고 전체 List 의 첫 번 째 일치 하 는 항목 을 0 에서 시작 하 는 색인 으로 되 돌려 줍 니 다.
Index Of(T,Int 32)-지정 한 대상 을 검색 하고 List 에서 지정 한 색인 을 마지막 요소 로 되 돌려 줍 니 다.이 부분 요소 에서 첫 번 째 일치 하 는 항목 의 0 에서 시작 하 는 색인 입 니 다.
Index Of(T,Int 32,Int 32)-지정 한 대상 을 검색 하고 List 에서 지정 한 색인 부터 시작 하여 지정 한 요 소 를 포함 하 는 이 부분 요소 중 첫 번 째 일치 하 는 항목 의 0 부터 색인 을 되 돌려 줍 니 다.
Find(Preaicate)-지정 한 술어 가 정의 하 는 조건 과 일치 하 는 요 소 를 검색 하고 전체 List 의 첫 번 째 일치 하 는 요 소 를 되 돌려 줍 니 다.
FindAll(Preaicate)-지정 한 술어 가 정의 하 는 조건 과 일치 하 는 모든 요 소 를 검색 합 니 다.
FindIndex(Preaicate)-지정 한 술어 가 정의 하 는 조건 과 일치 하 는 요 소 를 검색 하고 전체 로 되 돌려 줍 니 다. List 첫 번 째 일치 하 는 요소 의 0 부터 의 색인 입 니 다.
FindIndex(Int 32,Preaicate)-지정 한 술어 가 정의 하 는 조건 과 일치 하 는 요 소 를 검색 하고 되 돌려 줍 니 다. List 지정 한 색인 에서 마지막 요소 까지 의 요소 범위 내 에서 첫 번 째 일치 하 는 항목 의 0 에서 시작 하 는 색인 입 니 다.
FindIndex(In 32,Int 32,Preaicate)-지정 한 술어 가 정의 하 는 조건 과 일치 하 는 요 소 를 검색 하고 되 돌려 줍 니 다. List 지정 한 색인 에서 시작 하여 지정 한 요소 의 개 수 를 포함 하 는 요소 범위 내 에서 첫 번 째 일치 하 는 항목 의 0 에서 시작 하 는 색인 입 니 다.예:

static void Main(string[] args)
        {
            List<test> a = new List<test>();
            for (int i = 0; i < 10; i++)
            {
                a.Add(new test(i, "   "));
            }
            int res = a.FindIndex(x => x.ID == 3);
            Console.WriteLine(res);
        }

        public class test
        {
            public test(int a, string b)
            {
                ID = a;
                Name = b;
            }
            public int ID { get; set; }
            public string Name { get; set; }
        }
결과:콘 솔 인쇄 결 과 는 3 입 니 다.
4.수정 방법:
현재 List 는 색인 을 통 해 수정 작업 을 지원 하 며,조작 방식 은 배열 과 유사 합 니 다.
5.정렬 방법:
박문 C\#LINQ 조회 표현 식 용법 대응 LAMBDA 표현 식 참조
Sort()---기본 비교 기 를 사용 하여 전체 에 대해 List 원 소 를 정렬 합 니 다.
List형식의 List 를 정렬 합 니 다.Sort()방법 을 사용 하려 면 익명 의뢰 를 통 해 이 루어 질 수 있 습 니 다.개인 적 으로 정렬 기능 을 수행 하려 면 Linq 를 사용 하 는 것 이 좋 습 니 다.Sort 방법 에 대해 알 아 볼 수 있 습 니 다.아래 코드 를 참고 하 세 요.

public MainWindow()
        {
            InitializeComponent();

            List<test> a = new List<test>();

            a.Add(new test()
            {
                a = 1,
                b = ""
            });
            a.Add(new test()
            {
                a = 4,
                b = ""
            });
            a.Add(new test()
            {
                a = 2,
                b = ""
            });
            a.Add(new test()
            {
                a = 3,
                b = ""
            });
            a.Add(new test()
            {
                a = 9,
                b = ""
            });
            a.Add(new test()
            {
                a = 7,
                b = ""
            });
            a.Add(new test()
            {
                a = 6,
                b = ""
            });

            a.Sort((left, right) =>
            {
                if (left.a > right.a)
                    return 1;
                else if (left.a == right.a)
                    return 0;
                else
                    return -1;
            });
        }

        class test
        {
            public int a;
            public string b;
        }
상기 방식 을 통 해 List형식 을 Sort 방법 으로 정렬 할 수 있 습 니 다.
6.다른 방법:
Exists(Predicate)---확정 List 지정 한 술어 정의 조건 과 일치 하 는 요 소 를 포함 할 지 여부 입 니 다.
Contains(T)-어떤 요소 가 있 는 지 확인 합 니 다. List 맞다
상기 두 가지 방법 은 코드 를 다음 과 같이 사용 합 니 다.

public MainWindow()
        {
            InitializeComponent();

            List<test> a = new List<test>();

            a.Add(new test()
            {
                a = 1,
                b = ""
            });

            a.Add(new test()
            {
                a = 4,
                b = ""
            });

            var aa = new test()
            {
                a = 55,
                b = "11"
            };
            a.Add(aa);

            var res1 = a.Exists(x => x.a == 55);
            var res2 = a.Contains(aa);
        }

        class test
        {
            public int a;
            public string b;
        }
실행 결과,res1=true;res2=true
2.사전
 가장 완전 하고 상세 한 것 은 여전히 공식 문서 이다.
1.추가 방법
 Add(TKey,Tvalue)-지정 한 키 와 값 을 사전 에 추가 합 니 다.
TryAdd(Tkey,Tvalue)-지정 한 키 와 값 을 사전 에 추가 하려 고 합 니 다.
2.삭제 방법
Clear()---모든 키 와 값 을 Dictionary 제거
Remove(TKey) Dictionary 지정 한 키 의 값 을 제거 합 니 다.
Remove(TKey,Tvlue)--- Dictionary 지정 한 키 가 있 는 값 을 삭제 하고 요 소 를 복사 합 니 다. value 매개 변수.
3.검색 방법
Item[TKey]-지정 한 키 와 연 결 된 값 을 가 져 오 거나 설정 합 니 다.
Where 방법 으로 구현 할 수 있 습 니 다.코드 는 다음 과 같 습 니 다.

Dictionary<string, int> a = new Dictionary<string, int>();
            a.Add("1", 1);
            a.Add("2", 2);
            a.Add("3", 3);
            a.Add("4", 4);
            var res = a.Where(x => x.Key == "3").ToDictionary(x=>x.Key,y=>y.Value);
실행 결과 res 는 사전 형식'3',3
4.개정 방법
Item[TKey]-지정 한 키 와 연 결 된 값 을 가 져 오 거나 설정 합 니 다.보통 사전 의 Key 를 사용 하여 사전 의 Value 를 수정 합 니 다.
사전 형식의 키 는 정의 되면 수정 할 수 없 으 며,수정 하려 면 삭제 하고 다시 추가 할 수 밖 에 없습니다.
5.정렬 방법
일반적인 사전 유형 은 주로 Key 를 사용 하여 색인 을 하기 때문에 사전 과 같은 데이터 형 을 정렬 하 는 것 은 무의미 하기 때문에 사전 자체 에 sort 방법 이 없다.
정렬 을 하지 않 아 도 Linq 를 통 해 이 루어 질 수 있 습 니 다.코드 는 다음 과 같 습 니 다.

Dictionary<string, int> a = new Dictionary<string, int>();
            a.Add("4", 1);
            a.Add("1", 2);
            a.Add("3", 3);
            a.Add("5", 4);
           
            var res1 = a.OrderBy(x=>x.Key).ToDictionary(x => x.Key, x => x.Value);
            var res2 = a.OrderByDescending(x=>x.Key).ToDictionary(x => x.Key, x => x.Value);
실행 결과 res1 과 res2 는 각각 사전 key 의 오름차 순 정렬 과 내림차 순 정렬 을 실현 합 니 다.
6.다른 방법
ContainsKey(TKey)---여부 확인 Dictionary 지정 키 포함.
ContainsKey(Tvalue)---확인 Dictionary 특정 값 을 포함 하 는 지 여부 입 니 다.
이상 은 c\#List 와 Dictionary 가 자주 사용 하 는 작업 에 대한 상세 한 내용 입 니 다.c\#List 와 Dictionary 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기