문제

할 수 있습니 캐스팅 List<int> 하기 List<string> 어떻게 든?

나는 알 수 있었을 반복하고.ToString()일하지만,캐스팅으로 인해 발생하는 것으로 나타났다

나는 C#2.0(그래서 아무 LINQ).

도움이 되었습니까?

해결책

.NET2.0 가 ConvertAll 방법할 수 있는 전달에서는 변환기 기능:

List<int> l1 = new List<int>(new int[] { 1,2,3 } );
List<string> l2 = l1.ConvertAll<string>(delegate(int i) { return i.ToString(); });

다른 팁

업데이트에 대한 2010

List<int> l1 = new List<int>(new int[] { 1,2,3 } );
List<string> l2 = l1.ConvertAll<string>(x => x.ToString());

C#을 할 수 있 2.0 List<T>.Convert?그렇다면,나는 당신의 최고 추측하는 것이 사용하는 위임:

List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
list.Convert(delegate (int i) { return i.ToString(); });

합니다.


투표 글렌의 대답은 아마 올바른 코드;-)

당신이 할 수 없을 것이 직접 캐스팅으로 더 명시적 또는 암시적 던지기에서 존재하 int 문자열로,그것은 을 수 있는 방법이 있다.ToString()와 같은:-

foreach (int i in intList) stringList.Add(i.ToString());

편집 -또 다른 사람들이 지적으로는 오히려 화려하게,사용 intList.ConvertAll(대리인(int i){return i.ToString();});그러나 명확하게 당신은 아직도 사용합니다.ToString()및 그것의 전환이 아닌 캐스팅.

당신이 사용할 수 있습니다:

List<int> items = new List<int>(new int[] { 1,2,3 } );
List<string> s = (from i in items select i.ToString()).ToList();

이 있을 구축하는 새로운 목록입니다.근본적인 비트의 표현 List<int>List<string> 은 완전히 호환되지 않에서 64 비트 플랫폼으로,예를 들어,개별 구성원들도 동일한 크기입니다.

이는 이론적으로 치료 List<string>List<object> -이것은 자신들의 흥미 진진한 세계의 분산과 반공,그리고 현재 지원되지 않습니다 C#으로 또는 VB.NET.

result = listOfInt.Select(i => i.ToString(CultureInfo.InvariantCulture)).ToList()

대체 매개 변수 결과 listOfInt 당신의 매개변수

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top