Объединение полей: различия между версиями
Внешний вид
Sidminik (обсуждение | вклад) Нет описания правки |
Sidminik (обсуждение | вклад) |
||
| (не показано 8 промежуточных версий этого же участника) | |||
| Строка 8: | Строка 8: | ||
==Входные параметры== | ==Входные параметры== | ||
*<code>separator</code> - строка-разделитель, вставляемая между элементами; | |||
*<code>fields</code> - массив объектов, строковые представления которых необходимо объединить. | |||
==Выходные параметры== | ==Выходные параметры== | ||
*строка, состоящая из объединенных элементов, | |||
*пустая строка, если нет ни одного элемента, или все элементы пустые. | |||
==Алгоритм== | ==Алгоритм== | ||
*Проверяет массив входящих значений на наличие элементов; при их отсутствии возвращает пустую строку. | |||
*Создает список элементов. | |||
*Добавляет в список элементов только не пустые элементы массива. | |||
*Возвращает элементы списка, вставляя между ними заданный разделитель. | |||
==Использование в выражениях== | ==Использование в выражениях== | ||
<syntaxhighlight lang="java"> | |||
// CA_1 | |||
[JoinFields(Environment.NewLine , [Main.short_name], [Main.inn])] | |||
</syntaxhighlight> | |||
==Использование во вкладке кода== | ==Использование во вкладке кода== | ||
==Код функции== | ==Код функции== | ||
| Строка 20: | Строка 37: | ||
/// В отличие от string.Join() не добавляет в итог пустые строки, строки из пробелов и т.д. | /// В отличие от string.Join() не добавляет в итог пустые строки, строки из пробелов и т.д. | ||
/// </summary> | /// </summary> | ||
/// <param name="separator">Строка-разделитель, вставляемая между элементами.</param> | |||
/// <param name="fields">Массив объектов, строковые представления которых необходимо объединить.</param> | |||
/// <returns> | |||
/// - или строка, состоящая из объединенных элементов, | |||
/// - или <see cref="string.Empty"/>, если подходящих элементов нет. | |||
/// </returns> | |||
public static string JoinFields(string separator, params object?[]? fields) | public static string JoinFields(string separator, params object?[]? fields) | ||
{ | { | ||
Текущая версия от 03:42, 21 октября 2026
Функция JoinFields - объединяет нескольких текстовых значений в одну строку с использованием заданного разделителя.
Примечание
В отличие от string.Join() не добавляет в итог пустые строки, строки из пробелов и т.д.
Входные параметры
separator- строка-разделитель, вставляемая между элементами;fields- массив объектов, строковые представления которых необходимо объединить.
Выходные параметры
- строка, состоящая из объединенных элементов,
- пустая строка, если нет ни одного элемента, или все элементы пустые.
Алгоритм
- Проверяет массив входящих значений на наличие элементов; при их отсутствии возвращает пустую строку.
- Создает список элементов.
- Добавляет в список элементов только не пустые элементы массива.
- Возвращает элементы списка, вставляя между ними заданный разделитель.
Использование в выражениях
// CA_1
[JoinFields(Environment.NewLine , [Main.short_name], [Main.inn])]
Использование во вкладке кода
Код функции
/// <summary>
/// Объединение нескольких текстовых значений в одну строку с использованием заданного разделителя.<br/>
/// В отличие от string.Join() не добавляет в итог пустые строки, строки из пробелов и т.д.
/// </summary>
/// <param name="separator">Строка-разделитель, вставляемая между элементами.</param>
/// <param name="fields">Массив объектов, строковые представления которых необходимо объединить.</param>
/// <returns>
/// - или строка, состоящая из объединенных элементов,
/// - или <see cref="string.Empty"/>, если подходящих элементов нет.
/// </returns>
public static string JoinFields(string separator, params object?[]? fields)
{
if (fields == null || fields.Length == 0) return string.Empty;
var list = new System.Collections.Generic.List<string>();
foreach (var f in fields)
{
if (f == null || f == DBNull.Value) continue;
var elem = f.ToString();
if (string.IsNullOrWhiteSpace(elem)) continue;
list.Add(elem.Trim());
}
return string.Join(separator, list);
}