41 lines
910 B
C#
41 lines
910 B
C#
using System.Text;
|
|
|
|
namespace Lab9.Services;
|
|
|
|
public class StepLogger
|
|
{
|
|
private readonly StringBuilder _builder = new();
|
|
|
|
public void Header(string text)
|
|
{
|
|
_builder.AppendLine(text);
|
|
}
|
|
|
|
public void BlankLine()
|
|
{
|
|
_builder.AppendLine();
|
|
}
|
|
|
|
public void Line(string text)
|
|
{
|
|
_builder.AppendLine(text);
|
|
}
|
|
|
|
public void ArrayState(int[] array, params int[] highlightedIndices)
|
|
{
|
|
var highlighted = highlightedIndices.Length == 0
|
|
? new HashSet<int>()
|
|
: highlightedIndices.ToHashSet();
|
|
|
|
var parts = new string[array.Length];
|
|
for (var i = 0; i < array.Length; i++)
|
|
{
|
|
parts[i] = highlighted.Contains(i) ? $"[{array[i]}]" : array[i].ToString();
|
|
}
|
|
|
|
_builder.AppendLine(string.Join(" ", parts));
|
|
}
|
|
|
|
public override string ToString() => _builder.ToString();
|
|
}
|