2012-10-25 5 views

답변

6
var list = numberString.Select(c => Int32.Parse(c.ToString())).ToList(); 

또는, 오히려 기존 목록에 추가하려는 경우 :

list.AddRange(numberString.Select(c => Int32.Parse(c.ToString())); 
당신이 부적절한 입력에 던져지는 예외 두려워 경우
5
var list = new List<int>(); 

list.AddRange(
    from character in numericString 
    select int.Parse(character)); 
5
List<int> numericlist = "2670053157".Select(c => c - '0').ToList(); 
+0

거기에서 무엇을 했습니까? 'c - '0 '' – Silvermind

+1

@ Silvermind - Chars는 int입니다. '2'(50)에서 '0'(48)을 빼면 2가됩니다. –

+0

이 방법을 사용하지 않는 유일한 이유는 숫자가 아닌 문자가있는 경우를 제대로 처리하지 못하기 때문입니다 문자열에. –

1

, 당신은 항상 할 수 안전한 경로로 이동하십시오.

// string input = TextBox1.Text; 
List<int> intList = new List<int>(); 

foreach (char c in input) 
{ 
    int i; 
    if (Int32.TryParse(c.ToString(), out i)) 
    { 
     intList.Add(i); 
    } 
} 
1

도우미로 시작합니다. me THOD : 당신이 목록의 값을 원하는 경우

public static IEnumerable<short> getDigits(long input) 
{ 
    while (input > 0) 
    { 
     yield return (short)(input % 10); 
     input /= 10; 
    } 
} 

그리고, 단지 ToList 전화 :

: 당신이 높은 순서 비트를 원하는 경우 먼저 Reverse에 순서가 필요합니다

List<short> list = getDigits(2670053157).ToList(); 

List<short> list = getDigits(2670053157).Reverse().ToList();