Как создать строку CSV из String Array, если строка пуста при любом индексе, чем просто отбросить ее - PullRequest
0 голосов
/ 28 января 2011

Допустим, у меня есть массив вроде {"12", "23", "", "34", "22", "", "", "12"}

Если есть 5 пунктов, к которым следует добавить "<br/> после 2 пунктов. Я хочу расположить это в строку вроде "12,23, </br> 34,22 </br>, 12";

Если в массиве 3 элемента, строка должна разрываться после 2 элементов.

В массиве будет максимум 7 элементов.

Ответы [ 2 ]

1 голос
/ 28 января 2011

Это (псевдокод) что-то вроде того, что вы хотите?Я считаю, что ваша цель - объединить несколько пустых элементов в один элемент <br/>;если это не так, попробуйте уточнить ваше намерение.

sb = new stringBuilder
justWroteBr = false
foreach s in array
    if s == ""
        if justWroteBr
            continue
        else
            s.Add("<br/>")
            justWroteBr = true
        end
    else
        s.Add(s + ",")
        justWroteBr = false
    end
next
0 голосов
/ 28 января 2011
var yourArray = ...;
yourArray = yourArray.Where(str => !string.IsNullOrWhiteSPace(str)).ToArray();

var yourResult = Enumerate
  .Range(0, yourArray.Length)
  .Select(index => (index % 3 == 0)?("<br>" + yourArray[index]):yourArray[index])
  .Aggregate((cur, nex) => cur + "," + nex);

измените Aggregate на ToList (). ForEach (... stringbuilder.Append) для лучшей производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...