Рассмотрим количество строк, в которых предполагается, что они содержат «ключи» вида «Wxxx», где x - цифры от 0 до 9. Каждый из них может содержать только один или несколько элементов, разделенных символом «,» и двумя пробелами. Например:
W123
W432
W546, W234, W167
Те, которые содержат несколько «ключей», должны быть разбиты на массивы. Итак, последний из приведенных выше примеров должен быть разбит на массив, подобный следующему: {"W546", "W234", "W167"}
.
В качестве быстрого решения на ум приходит String.Split
, но, насколько я знаю, он может взять один символ, как ','. Проблема в том, что он будет возвращать массив с таким: {"W546", " W234", " W167"}
. Два пробела во всех записях массива, начиная со второго, возможно, можно удалить с помощью Substring
, но есть ли лучшее решение?
Для контекста эти значения хранятся в электронной таблице, и предполагается, что они прошли проверку данных, чтобы убедиться, что «ключи» разделены запятой и двумя пробелами.
while ((ws.Cells[row,1].Value!=null) && (ws.Cells[row,1].Value.ToString().Equals("")))
{
// there can be one key, or multiple keys separated by ','
if (ws.Cells[row,keysCol].Value.ToString().Contains(','))
{
// there are multiple
// need to split the ones in this cell separated by a comma
}
else
{
// there is one
}
row++;
}