C#
Файл Program.cs
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
// get all cultures (languages) from Windows
CultureInfo[] cinfo = CultureInfo.GetCultures(CultureTypes.AllCultures);
IEnumerable<Item> items = cinfo.Select(a => new Item(a.DisplayName, a.Name));
HTMLFile.Save(@"d:/2.html", items);// store to file
// get files from D:\
DirectoryInfo dir = new DirectoryInfo(@"D:\");
FileInfo[] files = dir.GetFiles();
items = files.Select(a => new Item(a.Name, a.Extension, a.CreationTime.ToString()));
HTMLFile.Save(@"d:/3.html", items);// store to file
}
}
// basic functionality (no change)
class Item
{
private readonly string[] _values;
public Item(params string[] values)
{
_values = values;
}
public int GetColumnsCount() => _values?.Count() ?? 0;
public string GetColumnValue(int iColumn)
{
if (_values != null && iColumn >= 0 && iColumn < GetColumnsCount())
return _values[iColumn];
return "";
}
}
static class HTMLFile
{
public static void Save(string filePath, IEnumerable<Item> items)
{
if (items == null)
return;
int columns = items.FirstOrDefault().GetColumnsCount();
// create file (delete old file)
FileStream fileStream = File.Open(filePath, FileMode.Create);
using (StreamWriter output = new StreamWriter(fileStream))
{
// create table
output.WriteLine("<table border='1'>");
// create header
output.WriteLine("<tr>");
for (int i=0; i<columns; i++)
{
output.WriteLine($"<th>Column {i+1}</th>");
}
output.WriteLine("</tr>");
// enum rows
foreach (Item item in items)
{
output.WriteLine("<tr>");
for (int i = 0; i < columns; i++)
{
string value = item.GetColumnValue(i);
output.WriteLine($"<td>{value}</td>");
}
output.WriteLine("</tr>");
}
// end table
output.WriteLine("</table>");
// close file
output.Close();
}
}
}
}
На заметку!
C#
class Item
{
public Item(params string[] values)
{
...
}
...
}
...
Item a1 = new Item("Hello!", "Home", "Good");
Item a2 = new Item("Normal");
Item a3 = new Item();
Item a4 = new Item("1", "5", "7", "abcdefg");
params это передача любого количества параметров в метод в C# ...