Это, безусловно, не нарушает стандартную практику .NET framework. Когда я вижу a + b
, я всегда предполагаю, что будет создано что-то новое.Имеет ли неизменяемый список, который перегружает «+»?
static void Main(string[] args)
{
var list = BuildList(ImmutableList<int>.Empty);
var sum = (list + 500).Sum();
Console.WriteLine(sum);
Console.ReadLine();
}
static ImmutableList<int> BuildList(ImmutableList<int> list)
{
if (list.Count < 1000)
{
return BuildList(list + list.Count);
}
return list;
}
Update
после знакомства Джон Скит на то, что в name methods on immutable lists.
Неожиданные Ответы
Я очень удивлен, что так много ответов, которые согласны, что это имеет смысл. В принципе, я тоже согласен, но мне легче читать вербальный код, чем тот, кому неудобно с трудом читать, хорошо сложенный код. Из моего опыта работы они кажутся большинством.
Зачем вам это нужно? –
Несомненно, это, в основном, понимание списка a la Haskell. В этом нет ничего плохого. –