C# - 문자열을 리스트로 변환

문자열을 분리하여 리스트의 요소로 추가하는 방법을 소개합니다.

1. 구분자로 문자열을 분리하여 리스트에 저장

예를 들어, 아래와 같은 문자열이 있을 때 , 를 구분자로 하여 문자열을 분리하고, 그 요소들을 리스트에 추가하는 방법입니다.

input: "hello, world, c#"
output: [hello, world, c#]

string.Split(delimiter)는 구분자로 문자열을 분리하여 문자열 배열로 리턴합니다. 리턴 값을 List의 생성자의 인자로 전달하면 리스트의 요소로 추가되면서 초기화됩니다.

namespace Example {
    public class Program {
        public static void Main(string[] args) {

            string str = "hello, world, c#";

            List<string> list = new List<string>(str.Split(", "));
            Console.WriteLine(String.Join(",", list));
        }
    }
}

Output:

hello,world,c#

2. 문자 단위로 분리하여 리스트에 저장

아래와 같이 문자열을 문자 단위로 분리하여 리스트에 저장하는 방법입니다.

input: "hello"
output: [h, e, l, l, o]

List<char>의 생성자의 인자로 string을 전달하면, 문자 단위로 요소가 추가됩니다.

namespace Example {
    public class Program {
        public static void Main(string[] args) {

            string str = "hello, world, c#";

            List<char> list = new List<char>(str);
            Console.WriteLine(String.Join(",", list));
        }
    }
}

Output:

h,e,l,l,o,,, ,w,o,r,l,d,,, ,c,#

2.1 AddRange()를 이용한 방법

다른 방법으로, 아래와 같이 List.AddRange()로 문자열의 문자들을 각각 리스트에 추가할 수 있습니다.

AddRange()는 인자로 전달된 Enumerable의 모든 요소를 저장하는데, 문자열이 Enumerable로 인식되고 각 문자들이 요소로 인식됩니다.

namespace Example {
    public class Program {
        public static void Main(string[] args) {

            string str = "hello, world, c#";
            List<char> list = new List<char>();

            list.AddRange(str);
            Console.WriteLine(String.Join(",", list));
        }
    }
}

Output:

h,e,l,l,o,,, ,w,o,r,l,d,,, ,c,#

2.2 List 으로 변환

List<string> 타입의 리스트로 저장하고 싶다면, 아래와 같이 Select()를 사용하여 char를 string 타입으로 변환하면 됩니다.

namespace Example {
    public class Program {
        public static void Main(string[] args) {

            string str = "hello, world, c#";

            List<string> list = new List<string>();
            list.AddRange(str.Select(c => c.ToString()));

            Console.WriteLine(String.Join(",", list));
        }
    }
}

Output:

h,e,l,l,o,,, ,w,o,r,l,d,,, ,c,#
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha