반응형
문자열 분할, ToList로 변환한 줄에 ()
숫자가있는 문자열이 있습니다.
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 배열을 사용할 수도 있습니다.
이처럼
int[] numbers = sNumbers.Split(',').Select(Int32.Parse).ToArray();
int.TryParse
예외를 피하기 위해 더 나은 사용 ;
var numbers = sNumbers
.Split(',')
.Where(x => int.TryParse(x, out _))
.Select(int.Parse)
.ToList();
Unity3d int.Parse
에서는 제대로 작동하지 않습니다. 그래서 나는 벨로우즈처럼 사용합니다.
List<int> intList = new List<int>( Array.ConvertAll(sNumbers.Split(','),
new Converter<string, int>((s)=>{return Convert.ToInt32(s);}) ) );
Unity3d 사용자에게 도움이 되길 바랍니다.
또한이 확장 방법을 사용할 수 있습니다
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(',');
내 문제는 비슷하지만 때로는 문자열에 문자가 포함되어있는 경우가 있습니다 (때로는 비어 있음).
string sNumbers = "1,2,hh,3,4,x,5";
Pcode Xonos 확장 방법을 따르려고합니다.
public static List<int> SplitToIntList(this string list, char separator = ',')
{
int result = 0;
return (from s in list.Split(',')
let isint = int.TryParse(s, out result)
let val = result
where isint
select val).ToList();
}
새로운 C # 6.0 언어 기능을 사용할 수 있습니다.
- 델리게이트
(s) => { return Convert.ToInt32(s); }
를 해당 메소드 그룹으로 교체Convert.ToInt32
- 중복 생성자 호출을 대체하십시오
new Converter<string, int>(Convert.ToInt32)
.Convert.ToInt32
결과는 다음과 같습니다.
var intList = new List<int>(Array.ConvertAll(sNumbers.Split(','), Convert.ToInt32));
이것을 사용할 수 있습니다 :
List<Int32> sNumberslst = sNumbers.Split(',').ConvertIntoIntList();
참고 URL : https://stackoverflow.com/questions/911717/split-string-convert-tolistint-in-one-line
반응형
'IT story' 카테고리의 다른 글
디렉토리의 모든 파일 및 폴더 권한을 644/755로 변경하십시오. (0) | 2020.05.27 |
---|---|
HTML 텍스트를 선택 불가능하게 만드는 방법 (0) | 2020.05.27 |
데이터 프레임 목록을 만들려면 어떻게합니까? (0) | 2020.05.27 |
응용 프로그램에 대한 실행 권한을 변경할 수 없습니다 (0) | 2020.05.27 |
Swift에서 UIImageView 객체에 액션을 할당하는 방법 (0) | 2020.05.27 |