Подтвердить что ты не робот

Как преобразовать один char в строку?

Я хотел бы перечислить string и вместо него возвращать chars Я бы хотел, чтобы итеративная переменная имела тип string. Вероятно, это не возможно, чтобы итеративный тип был string, и что является наиболее эффективным способом перебора этой строки?

Нужно ли мне создавать новый объект string с каждой итерацией цикла или я могу каким-то образом выполнить кастинг?

String myString = "Hello, World";
foreach (Char c in myString)
{
    // what I want to do in here is get a string representation of c
    // but I can't cast expression of type 'char' to type 'string'
    String cString = (String)c; // this will not compile
}
4b9b3361

Ответ 1

Использовать метод .ToString()

String myString = "Hello, World";
foreach (Char c in myString)
{
    String cString = c.ToString(); 
}

Ответ 2

У вас есть два варианта. Создайте объект string или вызовите метод ToString.

String cString = c.ToString();
String cString2 = new String(c, 1); // second parameter indicates
                                    // how many times it should be repeated

Ответ 3

С интерполяцией С# 6:

char ch = 'A';
string s = $"{ch}";

Это бреет несколько байтов.:)

Ответ 4

Кажется, что это очевидно:

String cString = c.ToString()

Ответ 5

Создайте новую строку из char.

 String cString = new String(new char[] { c });

или

 String cString = c.ToString();

Ответ 6

Создайте метод расширения:

public static IEnumerable<string> GetCharsAsStrings(this string value)
{
    return value.Select(c =>
           {
                //not good at all, but also a working variant
                //return string.Concat(c);

                return c.ToString();
           });
}

и циклические строки:

string s = "123456";
foreach (string c in s.GetCharsAsStrings())
{
    //...
}

Ответ 7

Вы пытались:

String s = new String(new char[] { 'c' });

Ответ 8

String cString = c.ToString();

Ответ 9

Почему не этот код? Не будет ли это быстрее?

string myString = "Hello, World";
foreach( char c in myString )
{
    string cString = new string( c, 1 );
}

Ответ 10

  возможно, итеративный тип не может быть строкой

Конечно, это:

foreach (string str in myString.Select(c => c.ToString())
{
...
}

Любое из предложений в других ответах можно заменить на c.ToString(). Вероятно, наиболее эффективным из маленьких волос является c => new string(c, 1), что, вероятно, char.ToString() делает под капотом.

Ответ 11

Вы можете использовать + с пустой строкой "", проверьте код ниже:

char a = 'A';
//a_str is a string, the value of which is "A".
string a_str = ""+a;