Я обновляю свойство элементов list
.
class Response
{
public string Name { get; set; }
public int Order { get; set; }
}
Здесь я хочу обновить Order
переменной List<Response>
. На данный момент я перебираю каждый элемент списка и обновляю его.
List<Response> data = FromDb();
foreach (var item in data)
{
if(item.Name.Equals("A"))
{
item.Order=1;
}
if(item.Name.Equals("B"))
{
item.Order=2;
}
//Like this I have arround 20 conditions
}
Приведенный выше код работает нормально, но проблема в том, что Cognitive Complexity
метода больше, чем разрешено.
Я попробовал что-то похожее ниже
data.FirstOrDefault(x => x..Equals("A")).Order = 1;
data.FirstOrDefault(x => x..Equals("B")).Order = 2;
//and more ...
В этом коде также null
проверка не установлена, поэтому, если искомая строка отсутствует в списке, она снова прервется.
Если я добавлю null
условие проверки, то снова complexity
становится выше.
Так что здесь я хочу без каких-либо for loop
или if
, если я могу обновить Порядок список, используя linq
/ lamda
или что-нибудь еще.