Untitled

 avatar
JCallico
plain_text
2 years ago
1.6 kB
7
Indexable
Here is the equivalent logic in C# for the provided Perl code block:

```csharp
if (config["sort"] != null && Regex.IsMatch(config["sort"], @"^order:.*,."))
{
    // Set the temporary sort_order variable to the sorting order,
    // remove extraneous line breaks and spaces, remove the order:
    // directive and split the sort fields into an array.
    string sortOrder = config["sort"];
    sortOrder = Regex.Replace(sortOrder, @"(\s+|\n)?,(\s+|\n)?", ",");
    sortOrder = Regex.Replace(sortOrder, @"(\s+)?\n+(\s+)?", "");
    sortOrder = sortOrder.Replace("order:", "");
    string[] sortedFields = sortOrder.Split(',');

    // For each sorted field, if it has a value or the print blank
    // fields option is turned on, print the form field and value.
    foreach (string sortedField in sortedFields)
    {
        if (config["print_blank_fields"] != null || !string.IsNullOrEmpty(form[sortedField]))
        {
            //BSS - table output
            Console.WriteLine($"<tr><td align=right>{sortedField}:</td>");
            Console.WriteLine($"<td align=left>{form[sortedField]}</td></tr>\n");
            //BSS
        }
    }
}
```

This C# code block replicates the logic of checking whether the `sort` configuration is set and follows the specified order. It then extracts and processes the sorted fields, printing them if the conditions are met. Note that the `form` collection is used to access field values instead of the Perl `%Form` hash. Adjustments may be needed based on your specific requirements and the structure of your C# program.
Editor is loading...
Leave a Comment