당신은 캐스팅 수 List<int>
에 List<string>
어떻게 든?
나는 내가 반복하고 .ToString () 일을 할 수 있다는 것을 알고 있지만 캐스트는 굉장 할 것입니다.
나는 C # 2.0 (그래서 LINQ 없음 )에 있습니다.
답변
.NET 2.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(); });
그 라인을 따라 뭔가.
Glenn의 대답을 찬성하십시오. 아마도 올바른 코드 일 것입니다 😉
답변
당신이 사용할 수있는:
List<int> items = new List<int>(new int[] { 1,2,3 } );
List<string> s = (from i in items select i.ToString()).ToList();
답변
명시 적 또는 암시 적 캐스트가 문자열로 INT에서 존재하지 않는로 직접 캐스팅에 당신은 것, 할 수 없을 것이다 이 같은로 .toString ()를 포함하는 방법으로 : –
foreach (int i in intList) stringList.Add(i.ToString());
편집 -또는 다른 사람들이 다소 훌륭하게 지적했듯이 intList.ConvertAll (delegate (int i) {return i.ToString ();});을 사용하십시오. 그러나 분명히 .ToString ()을 사용해야하며 변환입니다. 캐스트.
답변
새 목록을 작성해야합니다. 의 기본 비트 표현 List<int>
과 List<string>
완전히 호환되지 않습니다 – 64 비트 플랫폼에서, 예를 들어, 개별 구성원도 같은 크기되지 않습니다.
이론적 List<string>
으로 a를 a 로 취급하는 것이 가능합니다. 이것은 List<object>
공분산과 반공 변성의 흥미 진진한 세계로 안내하며 현재 C # 또는 VB.NET에서 지원되지 않습니다.
답변
result = listOfInt.Select(i => i.ToString(CultureInfo.InvariantCulture)).ToList()
매개 변수 결과 및 listOfInt를 매개 변수로 바꿉니다.