좋아요. Dictionary 객체에 무작위로 저장된 기본 클래스를 기반으로하는 일련의 객체가 있습니다. 예 :Dictionary에서 특정 객체 유형을 선택하고 삭제하는 가장 효율적인 방법입니다.
class TypeA
{
public int SomeNumber {get; set;}
public void SomeFunction()
}
class TypeB : TypeA
{
public string SomeString {get; set;}
}
class TypeC : TypeA
{
public bool StuffReady()
}
Dictionary listOfClasses <long, TypeA>;
키 값은 사전에 배치 된 개체 수의 실행 횟수입니다. 현재 사전 수와 일치하지 않습니다.
TypeB의 개체를 찾고 SomeString == "123"이라고 말하고 제거하고 싶습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
SomeString 값이 "123"인 개체가 하나만 있어야합니다. 이를 보장하기 위해 동일하거나 유사한 코드를 사용하겠습니다. 컴파일러에서 'found'에 대해 null 체크를 허용하지 않지만 'found'에 값이없는 경우 Remove 문에서 예외가 발생하지 않습니다. – ChrisBD
@ChrisBD : 잘 잡으세요. 발견 된 항목이 없을 때 Remove를 호출하면 Key = 0 인 합법적 인 사전 항목이있는 경우 문제가 발생할 수 있습니다 (항목을 찾을 수없는 경우 found.Key의 값은 기본적으로 0이되므로). found.Value에 대해 null 체크를 수행하도록 코드를 업데이트했습니다. – LukeH
@ 루크. 좋은 점은 검사가 있는지 여부를 확신 할 수 없었습니다. 값이 필요할 것입니다. 그러나 키 값이 0 일 가능성이 있다는 관찰에 동의합니다. – ChrisBD