Split String in C# without delimiter (sort of)

2020-03-13 05:32发布

问题:

I want to split a string in C#.NET that looks like this:

string Letters = "hello";

and put each letter (h, e, l, l, o) into an array or ArrayList. I have no idea what to use as the delimiter in String.Split(delimiter). I can do it if the original string has commas (or anything else):

string Letters = "H,e,l,l,o";
string[] AllLettersArray = Letters.Split(",".ToCharArray());

But I have no idea what to use in a case with (supposedly) no delimiter. Is there a special character like Environment.Newline? Thanks.

回答1:

Remember, you can access a string as an array in c#.

string str = "hello";
char[] letters = str.ToCharArray();



回答2:

Here is another full solution that uses a loop. This takes a regular string "helloworld" and puts each character into an array as a string. The most straightforward method without using LINQ or other references.

string str = "helloworld";
string[] arr = new string[str.Length];

for(int i=0; i<str.Length; i++)
{
    arr[i] = str[i].ToString();
}

This can be added to your codebase as an extension method.

public static class StringExtensions
{
    public static string[] ToStringArray(this string str)
    {
        string[] arr = new string[str.Length];

        for(int i=0; i<str.Length; i++)
        {
            arr[i] = str[i].ToString();
        }

        return arr;
    }
}

And then you have a 1 liner for the conversion.

string str = "helloworld";
string[] arr = str.ToStringArray();