#c# #asp.net #.net
#c# #asp.net #.net
Вопрос:
я использую следующий код для получения данных из списка объектов
Con preConObj = preConfigList.FirstOrDefault(i => i.ID == con.ID);
Теперь я хочу обновить этот объект в предварительном списке настроек, который является типом
private static List<Con> preConList;
с помощью этого объекта
Con PostConObj
Каков наилучший способ сделать это?
Я пробовал с
preConObj = postConObj
но это не обновляет список…
Ответ №1:
Сначала вы должны найти индекс объекта, используя:
var idx = preConList.FindIndex(x => x.ID == preConObj.ID);
preConList[idx] = postConObj; // replace it
Ответ №2:
Отражение может быть полезным в этом случае:
public static void UpdateObject<T>(this T source, T target)
{
var type = typeof(T);
var properties = type.GetProperties();
foreach(var prop in properties)
prop.SetValue(source, prop.GetValue(target));
}
// Usage:
preConObj.UpdateObject(postConObj);
Комментарии:
1. Кажется, я неправильно понял вопрос, вам не кажется?
2. @AmitJoki нет, на самом деле ваш способ тоже должен работать, и он более простой. но это также работает с другими коллекциями, поскольку не во всех коллекциях есть метод findIndex
3. спасибо за это разъяснение… Я думал, что предоставил неправильное решение, когда вы использовали отражение..