Следующий код очень повторяющийся, но содержит очень незначительные различия в доступе к свойствам. Они изменяются между RM/FM/FE и PrimaryRM/PrimaryFM/PrimaryFE в зависимости от того, к какому столбцу относится GroupKeyGetter
.Как можно упростить этот повторяющийся код?
Я не могу найти способ преобразования этого метода в метод, так что мне не нужно иметь этот массивный блок кода, но должен быть способ сделать это лучше ...
allRMsColumn.GroupKeyGetter = delegate(object rowObject)
{
var users = ((Tenant) rowObject).RMs.Trim().Split(new[] {", "}, StringSplitOptions.RemoveEmptyEntries);
return users.FirstOrDefault(user => GlobalSettings.Users.Find(x => x.Name == user && x.Selected) != null) ?? ((Tenant)rowObject).PrimaryRM;
};
allFMsColumn.GroupKeyGetter = delegate (object rowObject)
{
var users = ((Tenant)rowObject).FMs.Trim().Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries);
return users.FirstOrDefault(user => GlobalSettings.Users.Find(x => x.Name == user && x.Selected) != null) ?? ((Tenant)rowObject).PrimaryFM;
};
allFEsColumn.GroupKeyGetter = delegate (object rowObject)
{
var users = ((Tenant)rowObject).FEs.Trim().Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries);
return users.FirstOrDefault(user => GlobalSettings.Users.Find(x => x.Name == user && x.Selected) != null) ?? ((Tenant) rowObject).PrimaryFE;
};
Любые идеи вообще?
Существует распространенный тип между '' RMs', FMs' и 'FEs'? –
@DStanley Это все строки, такие как 'PrimaryRM',' PrimaryFM', 'PrimaryFE' – JohnUbuntu
Должно было догадаться, что из вызова' Trim() '. Благодарю. BTW 9 строк кода (исключая пробелы и пунктуации) не являются «массовыми» любыми способами. Вы можете улучшить повторное использование, но я сомневаюсь, что вы можете получить его на меньшее _lines_. –