string tags = "9,3,12,43,2"
List<int> TagIds = tags.Split(',');
split 메소드가 문자열을 반환하는 원인이 작동하지 않습니다.
답변
이를 수행하는 한 가지 방법이 있습니다.
List<int> TagIds = tags.Split(',').Select(int.Parse).ToList();
답변
간단한 유효성 검사를 포함하고 예외를 throw하는 대신 유효하지 않은 값을 건너 뛰려면 TryParse를 사용하는 것이 있습니다.
string csv = "1,2,3,4,a,5";
int mos = 0;
var intList = csv.Split(',')
.Select(m => { int.TryParse(m, out mos); return mos; })
.Where(m => m != 0)
.ToList();
//returns a list with integers: 1, 2, 3, 4, 5
편집 : 다음은 Antoine의 피드백을 기반으로 업데이트 된 쿼리입니다. 먼저 TryParse를 호출하여 잘못된 값을 필터링 한 다음 구문 분석하여 실제 변환을 수행합니다.
string csv = "1,2,3,4,a,5,0,3,r,5";
int mos = 0;
var intList = csv.Split(',')
.Where(m => int.TryParse(m, out mos))
.Select(m => int.Parse(m))
.ToList();
//returns a list with integers: 1, 2, 3, 4, 5, 0, 3, 5
편집 2 : Charles Burns의 피드백 덕분에 C # 7.0에 대한 업데이트 된 쿼리입니다. 이 접근법으로 여분의 mos 변수를 제거하므로 조금 더 깔끔합니다.
string csv = "1,2,3,4,a,5,0,3,r,5";
var intList = csv.Split(',')
.Where(m => int.TryParse(m, out _))
.Select(m => int.Parse(m))
.ToList();
답변
W / 당신은 LINQ를 사용할 수 있습니다 int.Parse()
을 변환 string[]
에 IEnumerable<int>
다음에 그 결과를 전달합니다 List<T>
생성자를 :
var tagIds = new List<int>(tags.Split(',').Select(s => int.Parse(s)));
답변
약간의 LINQ는 먼 길을갑니다.
List<int> TagIds = tags.Split(',')
.Select(t => int.Parse(t))
.ToList();
답변
LINQ Query가 없으면이 방법을 선택할 수 있습니다.
string tags = "9,3,12,43,2";
List<string> numbers = nos.Split(',').ToList<string>();
그런 다음이 목록을 정수 유형으로 변환 할 수 있습니다 …
답변
string tags = "9,3,12,43,2"
List<int> TagIds = tags.Split(',').Select(x => x.Trim()).Select(x=> Int32.Parse(x)).ToList();
답변
C # 3.5를 사용하는 경우 Linq를 사용하여이를 달성 할 수 있습니다.
string tags = "9,3,12,43,2";
List<int> tagIds = tags.Split(',').Select(s=>int.Parse(s)).ToList();
또는 짧은 것
string tags = "9,3,12,43,2";
List<int> tagIds = tags.Split(',').Select(int.Parse).ToList();