Ответ 1
Использовать метод .ToString()
String myString = "Hello, World";
foreach (Char c in myString)
{
String cString = c.ToString();
}
Я хотел бы перечислить 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
}
Использовать метод .ToString()
String myString = "Hello, World";
foreach (Char c in myString)
{
String cString = c.ToString();
}
У вас есть два варианта. Создайте объект string
или вызовите метод ToString
.
String cString = c.ToString();
String cString2 = new String(c, 1); // second parameter indicates
// how many times it should be repeated
С интерполяцией С# 6:
char ch = 'A';
string s = $"{ch}";
Это бреет несколько байтов.:)
Кажется, что это очевидно:
String cString = c.ToString()
Создайте новую строку из char.
String cString = new String(new char[] { c });
или
String cString = c.ToString();
Создайте метод расширения:
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())
{
//...
}
Вы пытались:
String s = new String(new char[] { 'c' });
String cString = c.ToString();
Почему не этот код? Не будет ли это быстрее?
string myString = "Hello, World";
foreach( char c in myString )
{
string cString = new string( c, 1 );
}
возможно, итеративный тип не может быть строкой
Конечно, это:
foreach (string str in myString.Select(c => c.ToString())
{
...
}
Любое из предложений в других ответах можно заменить на c.ToString()
. Вероятно, наиболее эффективным из маленьких волос является c => new string(c, 1)
, что, вероятно, char.ToString()
делает под капотом.
Вы можете использовать + с пустой строкой ""
, проверьте код ниже:
char a = 'A';
//a_str is a string, the value of which is "A".
string a_str = ""+a;