숫자가있는 문자열이 있습니다.
string sNumbers = "1,2,3,4,5";
분할해서 변환 할 수 있습니다 List<int>
sNumbers.Split( new[] { ',' } ).ToList<int>();
문자열 배열을 정수 목록으로 변환하는 방법은 무엇입니까? 변환 할 수 string[]
있도록IEnumerable
답변
var numbers = sNumbers.Split(',').Select(Int32.Parse).ToList();
답변
Linq가 없어도 이런 식으로 할 수 있습니다.
List<int> numbers = new List<int>( Array.ConvertAll(sNumbers.Split(','), int.Parse) );
// Uses Linq
var numbers = Array.ConvertAll(sNumbers.Split(','), int.Parse).ToList();
답변
Joze의 방법은 LINQ ToList()
가 필요 하며 System.Linq
네임 스페이스에 있습니다.
배열을 List 생성자에 전달하여 Linq없이 Array를 List로 변환 할 수 있습니다.
List<int> numbers = new List<int>( Array.ConvertAll(sNumbers.Split(','), int.Parse) );
답변
int.TryParse
예외를 피하기 위해 더 나은 사용 ;
var numbers = sNumbers
.Split(',')
.Where(x => int.TryParse(x, out _))
.Select(int.Parse)
.ToList();
답변
직접 할당 값을 지정하기 위해 int 배열을 사용할 수도 있습니다.
이처럼
int[] numbers = sNumbers.Split(',').Select(Int32.Parse).ToArray();
답변
또한이 확장 방법을 사용할 수 있습니다
public static List<int> SplitToIntList(this string list, char separator = ',')
{
return list.Split(separator).Select(Int32.Parse).ToList();
}
용법:
var numberListString = "1, 2, 3, 4";
List<int> numberList = numberListString.SplitToIntList(',');
답변
Unity3d int.Parse
에서는 제대로 작동하지 않습니다. 그래서 나는 벨로우즈처럼 사용합니다.
List<int> intList = new List<int>( Array.ConvertAll(sNumbers.Split(','),
new Converter<string, int>((s)=>{return Convert.ToInt32(s);}) ) );
Unity3d 사용자에게 도움이 되길 바랍니다.