Ответ 1
Используйте String
конструктор перегрузки, который принимает массив char, индекс и длину:
String text = new String(chars, 2, 3); // Index 2-4 inclusive
Я хочу преобразовать часть массива char в строку. Каков наилучший способ сделать это.
Я знаю, что могу сделать следующее для всего массива
char[] chars = {'a', ' ', 's', 't', 'r', 'i', 'n', 'g'};
string s = new string(chars);
но как насчет только элементов с 2 по 4?
Я также знаю, что могу перебирать массив и извлекать их, но я задавался вопросом, есть ли более сжатый способ сделать это.
Используйте String
конструктор перегрузки, который принимает массив char, индекс и длину:
String text = new String(chars, 2, 3); // Index 2-4 inclusive
Вы можете использовать LINQ
char[] chars = { 'a', ' ', 's', 't', 'r', 'i', 'n', 'g' };
string str = new string(chars.Skip(2).Take(2).ToArray());
Но вне курса строка перегруженного конструктора - это путь
Обновление
Вы также можете сделать это с помощью linq.
char[] chars = {'a', ' ', 's', 't', 'r', 'i', 'n', 'g'};
char[] selected = chars.Where((c, index) => index >= 2 && index <= 3).ToArray();
string s = new String(selected);
string a = "Hello";
char []b = a.ToCharArray();
string as=null;
//note this line is important
as = new string(b);