찾다
백엔드 개발C#.Net 튜토리얼C# 일반 목록 List의 기본 사용법 요약

샘플 코드는 다음과 같습니다.
namespace SampleListT
{
class Program
{
static void Main(string[] args)
{
//using System.Collections .Generic; List
//ArrayList 네임스페이스에서 System.Collections 사용
//둘 모두 목록 컬렉션을 구현하며, 하나는 일반 컬렉션이고 다른 하나는 일반 컬렉션이 아닙니다.
//다음으로 컬렉션에 Person 객체를 추가합니다

Person p1 = new Person( "aladdin" , 20);
Person p2 = new Person("zhao", 10);
Person p3 = new Person("jacky", 40);

//목록의 컨테이너 크기를 지정하지 않은 경우 기본값은 0입니다. 요소가 추가되는 한 자동으로 4로 확장됩니다. .5번째 요소를 추가하면 8이 되고, 9번째 요소를 추가하면 16이 됩니다
//확장할 때는 항상 기하급수적으로 늘어나는 것을 볼 수 있는데, 이는 메모리를 다시 열어야 한다는 것입니다. 요소의 개수를 미리 알고 있거나 가능한 개수라면 최대한 크게 trade-off 값을 주는 것이 가장 좋습니다
//요소를 3개 추가하고 컨테이너 크기를 4로 설정합니다. 참고: 4로 설정한다고 해서 4개의 요소만 배치할 수 있는 것은 아닙니다. 이를 초과하면 확장으로 인한 오버헤드를 최대화하기 위한 것입니다.
List list = new List(4);

list.Add(p1);
list.Add(p2);
list.Add(p3);

//이 방법 예를 들어, 할당 크기가 100이고 나머지는 4개만 사용하면 낭비가 아닌가요?
//이 메서드가 호출되면 요소 수가 컨테이너 크기의 90% 이상을 차지하는 경우 재활용되지 않습니다.
list.TrimExcess();

//ArrayList 메소드는 List와 동일하게 사용됩니다. 차이점은 객체의 컬렉션이고 매개변수가 Object라는 점입니다. 목록을 사용해 보세요
//여기서 더 이상 데모는 없습니다


// 1 수집기를 초기화합니다
// C# 3.0부터 초기화 함수는 제공되나 응답이 없습니다. IL에서는 ADD 메소드로 변환하여
List l2 = new List() { 1 ,2 를 호출합니다. 3 ,4 ,5 };


// 2 요소 추가 AddRange() 이 메서드는 여러 개체를 한 번에 추가할 수 있습니다.
Listlists = new List(10 );
//매개변수는 필수입니다. 삭제할 수 있는 객체는 배열일 수도 있습니다.
list.AddRange( new Person[] { new Person( "aladdin" ,20) , new Person("zhao", 6)});

//일괄 매개변수를 구성하고 전달하면 효과는 AddRange
List mylist = new List(new Person[] { new Person( "aladdin" ,20) , new Person("zhao" ,6)});


// 3 요소 삽입
// Insert() 메소드를 사용하여 다음을 수행할 수 있습니다. 지정된 위치에 요소를 삽입합니다
// 예를 들어 1번 위치에 삽입하면 마지막이 됩니다. 알라딘 재키자오가 되었습니다.. 삽입한다는 것은 제가 이전에 이 위치를 차지했다는 의미입니다. 그 다음 사람은 모두 한 자리 뒤로 이동합니다
mylist.Insert( 1 , new Person( "jacky" , 88 ));

foreach(mylist의 사람 p)
{
Console.WriteLine(p.name);
}


// 4 요소 액세스
// ArrayList 및 List 모두 액세스를 위한 인덱서를 제공합니다.
Console.WriteLine ( "---요소 액세스 -- ----------");

for (int i = 0; i {
Console.WriteLine(mylist[i].name);
}
//할 수 있습니다 또한 이를 달성하기 위해 foreach를 사용하며 여기에는 예제가 제공되지 않습니다.

//Foreach 메서드 사용
//public 위임자 void Action(T obj); >//Day 표현식을 사용하여 일부 위치에 구현
Console.WriteLine( "--- ---------------ForEach 메서드를 사용하여 출력------ -----------------------");

mylist.ForEach( param => Console.WriteLine(param.name) ) ;

// 5개 요소 삭제
//RemoveAt() 값을 사용하여 요소 삭제를 인덱서에 직접 전달할 수 있음
//첫 번째 요소를 직접 삭제
mylist.RemoveAt( 0);
//삭제할 요소를 Remove 메소드에 전달할 수도 있습니다

Listlists2 = new List(10);

Person per1 = new Person( "aladdin" , 100 );

Person per2 = new Person("zhao", 100);
Person per3 = new Person("jacky", 100);

lists2 .Add(1개);

lists2.Add(2개);
lists2.Add(3개);

lists2 .Remove(3개);

Console.WriteLine( " ------삭제된 요소---------");

foreach (Person per in listed2)
{
Console.WriteLine(per.name);
}
//Jacky라는 요소가 삭제된 결과를 확인할 수 있습니다.
//Remove 메소드의 삭제 과정을 살펴보겠습니다
// IndexOf 메소드를 사용하여 객체의 인덱스를 확인한 후, 인덱스에 따라 삭제합니다
// IndexOf 메소드에서는, 먼저 요소가 IEquatable 인터페이스를 구현하는지 확인합니다. 그렇다면 이 인터페이스에서 Equals 메서드를 호출하세요.
// 구현되지 않은 경우 Object에서 Equals 메서드를 호출하여 요소를 비교합니다(즉, 주소 비교)
// 위에서 per3을 삭제했는데, 주소가 있는 것이 확실해서 삭제했습니다

// 다음으로 Person을 수정하고 IEquatable을 구현했습니다. 비교 메서드에서는 항상 false가 반환됩니다. 그러면 per3은 비교에 실패하고 삭제되지 않습니다
// 결과는 모두 3개입니다
// 개체를 삭제하려면 Remove 메서드를 사용하므로 인덱스를 사용하여 직접 삭제하는 것이 가장 좋습니다. 일련의 과정을 거쳐 인덱스에 따라 최종 삭제됩니다.

// A 범위를 삭제하려면 RemoveRange()
//첫 번째 매개변수 시작 위치의 두 번째 숫자
// lists2.RemoveRange( 1, 2);
//Console.WriteLine( "일괄 삭제 후------ -----------");

//foreach (목록에 있는 사람2)
//{
// Console.WriteLine(이름당);
//}


// 6 검색
// 검색하는 방법에는 여러 가지가 있습니다. IndexOf LastIndexOf FindIndex FindLasIndex Find FindLas를 사용하면 요소가 존재하는지 확인하려는 경우 Exists() 메서드를 사용할 수 있습니다.
//IndexOf() 메서드에는 개체가 필요합니다. 매개변수에 도달하면 컬렉션에 있는 요소의 인덱스를 반환합니다. 찾을 수 없으면 -1을 반환합니다. IndexOf는 IEquatable 인터페이스를 사용하여 요소를 비교할 수도 있습니다

List(10);

Person person1 = new Person("aladdin", 100);
Person person2 = new Person("zhao ", 100);
Person person3 = new Person("jacky", 100);

ls3.Add(person1);
ls3.Add(person2);
ls3.Add(person3);

// 기본 주소 비교를 사용하기 위해 Person 인터페이스를 일시적으로 제거합니다
int index = ls3.IndexOf(person3);
Console.WriteLine( "index of per3 :" + index) / /2
// 세 번째부터 시작하도록 검색 범위를 지정할 수도 있습니다. 범위 길이는 1
int index2 = ls3.IndexOf(person3,2,1);
Console .WriteLine( index2);
//IEquatable 비교 방법은 이전에 작성되었으므로 예제는 제공되지 않습니다

//FindIndex() 메서드는 특정 특성을 가진 요소를 검색하는 데 사용됩니다
// 예 대리자를 매개변수로 사용 public 대리자 bool Predicate(T obj);

int index3 = ls3.FindIndex(param => param.name.Equals("jacky"));
콘솔. WriteLine( index3 );// 2
// FindLastIndex는 뒤에서 나오는 첫 번째 요소를 검색합니다. 여기에는 반복되는 요소가 없으므로 하나만 찾고 중지하는 효과는 반영되지 않습니다.
int index4 = ls3.FindLastIndex(p => p.name.Equals("aladdin"));
Console.WriteLine(index4);
//Find 메서드는 FindIndex 메서드와 동일하게 사용되며, 차이점은 반환되는 것은 요소 자체라는 것입니다
Person ppp = ls3.Find( p => p.name.Equals("jacky")) ;
Console.WriteLine(ppp);

// 일치하는 모든 요소를 ​​찾으려면 첫 번째 항목을 찾을 때 중지하는 대신 FindAll 메서드를 사용합니다.
// 연령이 100과 같고 그 중 3개가 일치하는 모든 개체를 찾습니다.
List newList = ls3.FindAll(p => p.age == 100);

Console.WriteLine( "---------모두 찾기--- -----");

foreach(newList의 개인 p)
{
Console.WriteLine(p.name);
}


// 7 정렬
// 목록은 Sort 메서드를 사용하여 정렬할 수 있으며 구현 알고리즘은 빠른 정렬입니다
//이 메서드에는 여러 오버로드가 있습니다

//public void Sort(); /요소 메소드에 IComparable을 구현한 경우에만 사용할 수 있으며, 구현한 경우 직접 sort를 한 번 호출하면 순서가 정렬됩니다.
//public void Sort(Comparison 비교) //Our Person 해당 인터페이스를 구현하지 않으므로 유형 위임을 매개변수로 사용하는 일반 메소드를 사용해야 합니다
//public void Sort(IComparer 비교자) //일반 인터페이스를 매개변수로 사용 public 위임자 int Comparison(T x , T y);
//public void Sort(int index, int count, IComparer 비교자); //범위를 지정할 수 있습니다

List ls4 = new List ;(10);

Person person4 = new Person("aladdin", 100);
Person person5 = new Person("zhao", 33);
Person person6 = new Person(" jacky", 44);

ls4 .Add(person4);
ls4.Add(person5);
ls4.Add(person6);

ls4.Sort(MyComparFunc );
Console.WriteLine( "--- ----------정렬-------------");

foreach(사람 p in ls4)
{
Console .WriteLine(p.name+ p.age );
}

Console.WriteLine( "---------순서를 반대로-- ------------ ----");
ls4.Reverse();

foreach(ls4의 개인 p)
{
콘솔. WriteLine(p.name+p.age);
}


// 8 유형 변환
//컬렉션의 요소를 모든 유형의 요소로 변환할 수 있습니다. 예를 들어 컬렉션의 Person을 Racer 개체로만 변환하려고 합니다. 이름 및 나이 없음
// 공개 List ConvertAll(Converter 변환기);
// 공개 위임 TOutput Converter(TInput 입력);
List ; ls5 = ls4.ConvertAll((input) => new Racer(input.name)) ;

Console.WriteLine( "--------- --변환된 항목---------");
foreach(Racer r in ls5)
{
Console.WriteLine(r.name);
}


// 9 읽기 전용 컬렉션
// 컬렉션이 생성된 후에는 읽기 및 쓰기가 가능해야 합니다. 그러나 그렇지 않은 경우 새 요소를 추가할 수 없습니다. 채워져 있으면 수정하지 마세요.
// 읽기 전용 컬렉션을 사용할 수 있으며, List 작업과 동일한 ReadOnlyCollection 그러나 컬렉션을 수정하는 작업이 있으면 예외가 발생합니다
// 일반적인 ADD 및 기타 메서드를 차단합니다

ReadOnlyCollection persss = ls5.AsReadOnly();

Console.WriteLine("읽기 전용 컬렉션 출력");

foreach(persss의 Racer r)
{
Console.WriteLine(r.name);
}

Console.ReadLine();

}

//비교를 위해 작성된 위임 구현 방법
public static int MyComparFunc(Person p1, Person p2)
{
if (p1.age == p2.age)
{
return 0;
}
else if (p1.age > p2.age)
{
return 1;
}
else
{
return -1;
}
}
}

//두 개의 도우미 클래스
class Person //:IEquatable
{
public string name;
public int age;

public Person( string name, int age)
{
this.name = name;
this.age = age; >
////항상 False 값을 제공합니다

//public bool Equals(Person other)

//{
// false를 반환합니다. ;
//}

}

class Racer

{

공개 문자열 이름;

공개 Racer(문자열 이름)

{

this.name= name;
}
}
}



C# 일반 목록 List

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
C# .NET : 핵심 개념 탐색 및 프로그래밍 기초C# .NET : 핵심 개념 탐색 및 프로그래밍 기초Apr 10, 2025 am 09:32 AM

C#은 Microsoft가 개발 한 최신 객체 지향 프로그래밍 언어이며 .NET 프레임 워크의 일부로 개발되었습니다. 1.C#은 캡슐화, 상속 및 다형성을 포함한 객체 지향 프로그래밍 (OOP)을 지원합니다. 2. C#의 비동기 프로그래밍은 응용 프로그램 응답 성을 향상시키기 위해 비동기 및 키워드를 기다리는 키워드를 통해 구현됩니다. 3. LINQ를 사용하여 데이터 컬렉션을 간결하게 처리하십시오. 4. 일반적인 오류에는 NULL 참조 예외 및 인덱스 외 예외가 포함됩니다. 디버깅 기술에는 디버거 사용 및 예외 처리가 포함됩니다. 5. 성능 최적화에는 StringBuilder 사용 및 불필요한 포장 및 Unboxing을 피하는 것이 포함됩니다.

C# .NET 응용 프로그램 테스트 : 장치, 통합 및 엔드 투 엔드 테스트C# .NET 응용 프로그램 테스트 : 장치, 통합 및 엔드 투 엔드 테스트Apr 09, 2025 am 12:04 AM

C#.NET 애플리케이션에 대한 테스트 전략에는 단위 테스트, 통합 테스트 및 엔드 투 엔드 테스트가 포함됩니다. 1. 단위 테스트를 통해 MSTEST, NUNIT 또는 XUNIT 프레임 워크를 사용하여 코드의 최소 단위가 독립적으로 작동합니다. 2. 통합 테스트는 일반적으로 사용되는 시뮬레이션 된 데이터 및 외부 서비스를 결합한 여러 장치의 기능을 확인합니다. 3. 엔드 투 엔드 테스트는 사용자의 완전한 작동 프로세스를 시뮬레이션하며 셀레늄은 일반적으로 자동 테스트에 사용됩니다.

Advanced C# .NET 튜토리얼 : ACE 귀하의 다음 선임 개발자 인터뷰Advanced C# .NET 튜토리얼 : ACE 귀하의 다음 선임 개발자 인터뷰Apr 08, 2025 am 12:06 AM

C# 수석 개발자와의 인터뷰에는 비동기 프로그래밍, LINQ 및 .NET 프레임 워크의 내부 작업 원리와 같은 핵심 지식을 마스터하는 것이 필요합니다. 1. 비동기 프로그래밍은 비동기를 통해 작업을 단순화하고 응용 프로그램 응답 성을 향상시키기 위해 기다리고 있습니다. 2.linq는 SQL 스타일로 데이터를 운영하고 성능에주의를 기울입니다. 3. Net Framework의 CLR은 메모리를 관리하며 가비지 컬렉션은주의해서 사용해야합니다.

C# .NET 인터뷰 질문 및 답변 : 전문 지식 레벨 업C# .NET 인터뷰 질문 및 답변 : 전문 지식 레벨 업Apr 07, 2025 am 12:01 AM

C#.NET 인터뷰 질문 및 답변에는 기본 지식, 핵심 개념 및 고급 사용이 포함됩니다. 1) 기본 지식 : C#은 Microsoft가 개발 한 객체 지향 언어이며 주로 .NET 프레임 워크에 사용됩니다. 2) 핵심 개념 : 위임 및 이벤트는 동적 바인딩 방법을 허용하고 LINQ는 강력한 쿼리 기능을 제공합니다. 3) 고급 사용 : 비동기 프로그래밍은 응답 성을 향상시키고 표현 트리는 동적 코드 구성에 사용됩니다.

C# .NET을 사용하여 마이크로 서비스 구축 : 건축가를위한 실용 가이드C# .NET을 사용하여 마이크로 서비스 구축 : 건축가를위한 실용 가이드Apr 06, 2025 am 12:08 AM

C#.net은 강력한 생태계와 풍부한 지원으로 인해 마이크로 서비스를 구축하는 데 인기있는 선택입니다. 1) ASP.NETCORE를 사용하여 RESTFULAPI를 작성하여 주문 생성 및 쿼리를 처리하십시오. 2) GRPC를 사용하여 마이크로 서비스 간의 효율적인 통신을 달성하고 주문 서비스를 정의하고 구현하십시오. 3) Docker Containerized 마이크로 서비스를 통해 배포 및 관리를 단순화합니다.

C# .NET 보안 모범 사례 : 일반적인 취약점 방지C# .NET 보안 모범 사례 : 일반적인 취약점 방지Apr 05, 2025 am 12:01 AM

C# 및 .NET의 보안 모범 사례에는 입력 확인, 출력 인코딩, 예외 처리, 인증 및 인증이 포함됩니다. 1) 일반 표현식 또는 내장 방법을 사용하여 악성 데이터가 시스템에 들어가는 것을 방지하기 위해 입력을 확인하십시오. 2) XSS 공격을 방지하기 위해 출력 인코딩 httputility.htmlencode 메서드를 사용하십시오. 3) 예외 처리는 정보 유출을 피하고 오류를 기록하지만 자세한 정보를 사용자에게 반환하지는 않습니다. 4) ASP.NETIDENITY 및 CAMPLES 기반 승인을 사용하여 신청서를 무단 액세스로부터 보호합니다.

C 언어 : 무엇을 의미 하는가C 언어 : 무엇을 의미 하는가Apr 03, 2025 pm 07:24 PM

C 언어의 결장의 의미 ( ':') : 조건부 명세서 : 조건부 표현 및 명령문 분리 블록 루프 문 : 초기화, 조건부 및 증분 표현식 매크로 정의 분리 : 매크로 이름 및 매크로 값 단일 라인 주석 설명 : 콜론에서 라인으로의 내용을 주석 차원으로 표현

C 언어에서 무엇을 의미 하는가C 언어에서 무엇을 의미 하는가Apr 03, 2025 pm 07:21 PM

A In Canue in-Conecrease Operator이며 운영 메커니즘에는 다음이 포함됩니다. 먼저 변수 값을 얻습니다. a. A의 값을 1 x 1. 증가 후 A의 값을 반환합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)