В соответствии с документами List<T>
и HashSet<T>
оба инструмента ICollection<T>
и IReadOnlyCollection<T>
можно использовать любой из этих интерфейсов, потому что они имеют свойство Count
.
Поскольку вы не изменяете коллекцию, а только отображаете ее, IReadOnlyCollection<T>
выглядит лучше здесь
public static void DisplayCollection<T>(IReadOnlyCollection<T> collection)
{
int i = 0;
foreach (T item in collection)
{
Console.Write(item.ToString());
if (i < collection.Count - 1)
{
Console.Write(", ");
}
i++;
}
Console.WriteLine();
}
Однако, если вам понадобится только строковое представление коллекции, string.Join
метод с принятием перегрузки IEnumerable<T>
позволяет сделать это в одной строке
var list = new List<int>() { 1, 2, 3, 4 };
var display = string.Join(", ", list);
Console.WriteLine(display);
Приведенный выше код выведет 1, 2, 3, 4
, что аналогично приведенному выше методу DisplayCollection<T>