문제

내가 사용하는 경향이 있 ArrayLists 의 구조입니다.그것은 매우 쉽게 사이클을 통해 목록으로 기록합니다..

문제는 내용 foreach 수정하는 구조물 내용을 사용해야하고 지저분한 typecasts.

((dataStructure)files[x]).name = here;

은 거기에 더 단정한 방법으로 할 수 있나요?

도움이 되었습니까?

해결책

나는 이것이 단순하게 들린다는 것을 알고 있습니다 변이 가능한 값 유형에 대해 거절하십시오.

그들은 거의 절대 문제에 대한 올바른 해결책. A가 있습니다 매우 예외는 거의 없지만 수업은 거의 없습니다 언제나 가는 길.

또한 실제로 사용하는 경우 ArrayList 그런 다음 이미 Unboxing 비용을 발생시킬 것입니다 ... (Konrad가 말한 것처럼 .NET 2.0을 사용할 수 있다면 제네릭을 사용하십시오.)

돌연변이 가능한 구조를 실제로 사용한다고 주장한다면 for 대신 루프 foreach. 그러나 제발, 어쨌든 수업으로 변경하십시오.

다른 팁

네,있다:를 사용하지 않는 형식화되지 않은 ArrayList, 이러한 유형을 사용의 일반적인 유형 System.Collections.Generic.귀하의 경우: List<T>.

를 사용할 수 없습니다 그것은에서와 함께 foreach 루프 수정하는 구조 값을 하지만 적어도 당신은 필요가 없다.

사용 일반적인 버전 ArrayList: List<DataStructure>.

이렇게하면 상황이 훨씬 좋아 보입니다.

files[x].name = here;

그렇습니다. 사례가 있습니다 List <T> 또한 유용하지 않습니다. 이 경우 매뉴얼에서 가장 오래된 트릭이 작동합니다. 대신에 foreach, 당신은 루프를 사용해야합니다 :

while (listItem.Count >0)
{
//do operation with 0th element of List Item always like
 deletefunc(lisItem[0]);
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top