어쨌든 객체를 실제 유형에 unbox하려면 어떻게해야합니까?객체를 해당 유형의 항목으로 박스에서 꺼내십시오.
기본적으로 내가 int
또는 double
, 아니면 다른 유형의 목록 실제로 ArrayList
, 배열 목록을 감안할 때입니다 (이 중 하나가 될 수 있지만, 중 모든 int
또는 double
, 아니 혼합이다). 이제 실제 유형에 따라 List<double>
또는 List<int>
또는 다른 목록을 반환해야합니다.
public List<T> ConvertToList<T>(ArrayList arr)
{
var list1 = new List<T>();
foreach(var obj in arr)
{
// how to do the conversion?
var objT = ??
list1.Add(objT);
}
return list1;
}
어떤 아이디어가 있습니까?
Erhm, o를 반환합니다. bject, 당신이 처음에 가지고있는 것입니다. 당신은 2 번 전환을하고 있습니다. '(T) obj;'로 충분할 것입니다. –
@Filip 당신 말이 맞습니다. 그러나이 솔루션은 좀 더 관대합니다. 그런 식으로 Convert가 실패하지 않으면 문자열을 int로 변환 할 수도 있습니다. – gsharp
그러나 그것은 질문 된 질문이 아닙니다. 개인적으로 ArrayList에 박스형 값만 포함될 것으로 예상되는 경우 예기치 않은 유형의 문자열 또는 실제로 boxed 값을 포함하기 시작하면 예외가 발생합니다. 물어 본 질문과 실제로 관련이있는 것은 T 비트로만 캐스팅됩니다. –