Вам не нужен массив или даже все oop.
Есть много способов сделать это ... Например, используя словарь.
Но в вашем случае есть не нужно усложнять вещи.
Одна строка кода заменит все так:
private string returnWithLinks(string adminString, int adminId)
{
var returnString = adminString
.Replace("[1]", "<a>something</a>" + var1fromsomwhere + 1)
.Replace("[2]", "<a>something</a>" + var2fromsomwhere + 2)
.Replace("[3]", "<a>something</a>" + var3fromsomwhere + 3)
.Replace("[4]", "<a>something</a>" + var4fromsomwhere + 4)
.Replace("[5]", "<a>something</a>" + var5fromsomwhere + 5);
return returnString;
}
Выполнение со словарем и др. oop:
private static readonly Dictionary<string, string> _replacements = new
Dictionary<string, string>
{
{ "[1]", "<a>something</a>" + var1fromsomwhere + 1 },
{ "[2]", "<a>something</a>" + var2fromsomwhere + 2 },
{ "[3]", "<a>something</a>" + var3fromsomwhere + 3 },
{ "[4]", "<a>something</a>" + var4fromsomwhere + 4 },
{ "[5]", "<a>something</a>" + var5fromsomwhere + 5 },
};
private string returnWithLinks(string adminString, int adminId)
{
var keys = _replacements.Keys.ToArray();
var returnString = adminString;
for(var i = 0; i < keys.Length; i++)
{
var key = keys[0];
returnString = returnString.Replace(key, _replacements[key]);
}
return returnString;
}
Как видите, словарь выглядит чище, но с точки зрения обслуживания и количества строк кода это одно и то же.
Вам все равно нужно будет добавить строку в словарь для каждой замены.
Единственная причина, по которой я бы сделал это в al oop со словарем, заключается в том, что словарь НЕ жестко закодирован ,
Значение, если словарь был заполнен, например, значениями из базы данных.
Другим недостатком l oop является количество выделенных строк на одно дополнительное выделение на одну итерацию.