C\#List<T>의 Contains,Exists,Any,Where 성능 비교
Person 클래스 새로 만 들 기
public class Person
{
public Person(string name,int id)
{
Name = name;
Id = id;
}
public string Name { get; set; }
public int Id { get; set; }
}
목록 초기 화100 만 개의 데이터 가 있 습 니 다.그리고 각각 방법 을 통 해 xiaoming 이 List 에 있 는 지 여 부 를 판단 합 니 다.코드 는 다음 과 같 습 니 다.
static void Main(string[] args)
{
List<Person> persons = new List<Person>();
// persons
for (int i = 0; i < 1000000; i++)
{
Person person = new Person("My" + i,i);
persons.Add(person);
}
Person xiaoming=new Person("My999999", 999999);
// persons xiaoming
Stopwatch watch = new Stopwatch();
watch.Start();
bool a = persons.Contains(xiaoming);
watch.Stop();
Stopwatch watch1 = new Stopwatch();
watch1.Start();
bool b = persons.Exists(x=>x.Id==xiaoming.Id);
watch1.Stop();
Stopwatch watch2 = new Stopwatch();
watch2.Start();
bool c = persons.Where(x=>x.Id==xiaoming.Id).Any();
watch2.Stop();
Stopwatch watch3 = new Stopwatch();
watch3.Start();
bool d = persons.Any(x => x.Id == xiaoming.Id);
watch3.Stop();
Console.WriteLine("Contains :" + watch.Elapsed.TotalMilliseconds);
Console.WriteLine("Exists :" + watch1.Elapsed.TotalMilliseconds);
Console.WriteLine("Where :" + watch2.Elapsed.TotalMilliseconds);
Console.WriteLine("Any :" + watch3.Elapsed.TotalMilliseconds);
Console.ReadLine();
}
실행 결 과 는 아래 그림 과 같다.결론.
위의 그림 을 통 해 성능 순 서 를 알 수 있 습 니 다.
Contains > Exists > Where > Any
주의:Contains 에서 검색 조건 을 가 져 올 수 없습니다.
C\#List<T>의 Contains,Exists,Any,Where 성능 대비 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 C\#Contains,Exists,Any,Where 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 우 리 를 많이 지지 해 주시 기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.