if (Math.Abs(dt1.Subtract(dt2).TotalSeconds) < 1.0)
Вам также следует избегать использования строк в вашем случае, вместо этого используйте StringBuilder. Избегайте также использования смыслового форматирования -just list [iRow] - лучший вариант.
Попробуйте вместо этого что-нибудь вроде этого:
string result = string.Join(", ",
list.Where(s => !string.IsNullOrEmpty(s)).ToArray());
Статический метод TrimEnd строки позволяет указать, какие символы следует обрезать.
Однако в вашем случае имеет смысл проверить в цикле for, есть ли у вас пустые слоты, и в end объединяет результирующую строку со строкой.Join (разделитель строк, части строки [])
Если вы хотите удалить что-то, что добавили, не добавляйте это в первую очередь. Кроме того, тип StringBuilder
лучше подходит для объединения нескольких строк, поскольку он намного эффективнее использует память.
StringBuilder sb = new StringBuilder();
for (int i = 0; i < list.Count; i++)
{
string rowValue = list[iRow];
if (!string.IsNullOrEmpty(rowValue))
{
sb.Append(rowValue);
sb.Append(", ");
}
}
// use sb.ToString() to obtain result
Ненавижу делать предположения, но я буду, потому что кажется вы хотите сохранить «пробелы» до конца, в этом случае вам следует использовать TrimEnd. Если нет, то используйте любую другую опцию, чтобы не добавлять пустые значения в первую очередь.
Точнее, если бы ваш вывод мог выглядеть так:
asd, aaa, qwe, 123123,,, somevalue, ,
Затем вам нужно будет выполнить цикл и использовать TrimEnd.
В противном случае, если вы можете свернуть поля, исключите пустые заранее.
asd, aaa, qwe, 123123, somevalue
попробуйте следующее:
List<string> list = new List<string>(
new string[]{"asd", "aaa", "qwe", "123123", "", null, "", null, ""});
return String.Join(", ", list.Where(i => !String.IsNullOrEmpty(i)).ToArray());