Дано: код на языке C Sharp (C#) (в частности ASP.Net Core 2).
Задача: изменить значения некоторых элементов списка List<T> по определенному условию.
Вариант решения
Пусть есть следующий класс:
Пусть есть список с экземплярами данного класса, который был заполнен каким-либо способом (например, из базы):
Пример добавления одного элемента:
Пусть нам нужно установить значение "red" в свойство strStructureColor для всех элементов списка, у которых IntStructureType равно 4.
Сделать это довольно легко при помощи лямба-выражения.
Вариант реализации: (можно записать в одну строку)
Т.е. замена произойдет непосредственно в элементах текущего списка без необходимости копировать их в другой список.
(с) Ella S.
Задача: изменить значения некоторых элементов списка List<T> по определенному условию.
Вариант решения
Пусть есть следующий класс:
public class SomeStructure { public int IntStructureID { get; set; } public int IntStructureType { get; set; } public string strName { get; set; } public string strStructureColor { get; set; } }
Пусть есть список с экземплярами данного класса, который был заполнен каким-либо способом (например, из базы):
List<SomeStructure> lstSomeStructures = new List<SomeStructure>();
Пример добавления одного элемента:
SomeStructure St = new SomeStructure(); St.intStructureID = 1; St.IntStructureType = 4; St.strName = "Какой-то раздел"; lstSomeStructures.Add(St);
Пусть нам нужно установить значение "red" в свойство strStructureColor для всех элементов списка, у которых IntStructureType равно 4.
Сделать это довольно легко при помощи лямба-выражения.
Вариант реализации: (можно записать в одну строку)
lstSomeStructures .FindAll(s => s.IntStructureType == 4) .ForEach(x => x.strStructureColor = "red");
Т.е. замена произойдет непосредственно в элементах текущего списка без необходимости копировать их в другой список.
(с) Ella S.
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.
Если нужно несколько условий (действий), то пример:
ОтветитьУдалитьlstSomeStructures
.FindAll(s => s.IntStructureType == 4 & s.intStructureID > 1)
.ForEach(x => { x.strStructureColor = "red"; x.IntStructureType = 1; });
Спасибо! Как раз та информация, которую я искал ) Как раз нужна была массовая замена в списке одного значения на другое.
ОтветитьУдалитьРада, что пригодилось :)
УдалитьСпасибо! Очень пригодилось.
ОтветитьУдалитьСпасибо)
ОтветитьУдалить