// See https://aka.ms/new-console-template for more information
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using GenericMath;
// List numbers4 = new() { 1, 2 };
// Console.WriteLine(numbers4.Sum());
Blah();
Numeral.Create(‘0’);
List ints = new() { 1, 2 };
Console.WriteLine(Sum(ints));
List decimals = new() { 1.1m, 2.2m };
Console.WriteLine(Sum(decimals));
List numerals = new() { Numeral.Parse(“V”, null), Numeral.Parse(“IV”, null) };
Console.WriteLine(Sum(numerals));
static T Sum(IEnumerable values)
where T : INumber
{
T result = T.Zero;
foreach (var value in values)
{
T number = T.Create(value);
result += number;
}
return result;
}
// static T Sum2(IEnumerable values)
// where T : IAdditionOperators
// {
// T result = values.First();
//
// int n = 0;
// foreach (T value in values)
// {
// if (n++ == 0) continue;
// //T number = T.Create(value);
// result += value;
// }
//
// return result;
// }
static T InvariantParse(string s)
where T : IParseable
{
return T.Parse(s, CultureInfo.InvariantCulture);
}
void Blah()
{
var name = InvariantParse(“Fred”);
var number = InvariantParse(“42”);
Console.WriteLine(name);
Console.WriteLine(number);
}