В настоящее время я работаю над небольшим приложением для управления финансами и использую XmlSerializer для сохранения своих данных. Я поддерживаю основной список (allRecords), содержащий все данные, и два отдельных списка (incomeList и CostList), используемые для отображения пользовательского интерфейса.
Моя цель — обеспечить, чтобы при сохранении все новые записи из подсписков объединялись в основной список без создания дубликатов. В настоящее время я обрабатываю это с помощью проверки .Contains() перед добавлением.
Мой вопрос: является ли этот подход чистым или я могу столкнуться с проблемами, связанными со ссылками на объекты (ссылочное равенство)? Есть ли более эффективный или «лучший» способ синхронизации этих списков перед сериализацией?
Вот мой код:
public void LoadData()
{
XmlSerializer serializer = new XmlSerializer(typeof(List));
using var stream = new FileStream("Data.xml", FileMode.Open);
allRecords = (List) serializer.Deserialize(stream);
foreach (var record in allRecords)
{
if (record.Type == "Income")
{
incomeList.Add(record);
}
else if(record.Type == "Expense")
{
expenseList.Add(record);
}
}
}
public void SaveData()
{
XmlSerializer serializer = new XmlSerializer(typeof(List));
using var stream = new FileStream("Statement.xml", FileMode.Create);
foreach (var income in incomeList)
{
if (!allRecords.Contains(income))
{
allRecords.Add(income);
}
}
foreach (var expense in expenseList)
{
if (!allRecords.Contains(expense))
{
allRecords.Add(expense);
}
}
serializer.Serialize(stream, allRecords);
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... ore-saving
Сериализация C# XML: объединение нескольких списков перед сохранением ⇐ C#
Место общения программистов C#
1768392678
Anonymous
В настоящее время я работаю над небольшим приложением для управления финансами и использую XmlSerializer для сохранения своих данных. Я поддерживаю основной список (allRecords), содержащий все данные, и два отдельных списка (incomeList и CostList), используемые для отображения пользовательского интерфейса.
Моя цель — обеспечить, чтобы при сохранении все новые записи из подсписков объединялись в основной список без создания дубликатов. В настоящее время я обрабатываю это с помощью проверки .Contains() перед добавлением.
Мой вопрос: является ли этот подход чистым или я могу столкнуться с проблемами, связанными со ссылками на объекты (ссылочное равенство)? Есть ли более эффективный или «лучший» способ синхронизации этих списков перед сериализацией?
Вот мой код:
public void LoadData()
{
XmlSerializer serializer = new XmlSerializer(typeof(List));
using var stream = new FileStream("Data.xml", FileMode.Open);
allRecords = (List) serializer.Deserialize(stream);
foreach (var record in allRecords)
{
if (record.Type == "Income")
{
incomeList.Add(record);
}
else if(record.Type == "Expense")
{
expenseList.Add(record);
}
}
}
public void SaveData()
{
XmlSerializer serializer = new XmlSerializer(typeof(List));
using var stream = new FileStream("Statement.xml", FileMode.Create);
foreach (var income in incomeList)
{
if (!allRecords.Contains(income))
{
allRecords.Add(income);
}
}
foreach (var expense in expenseList)
{
if (!allRecords.Contains(expense))
{
allRecords.Add(expense);
}
}
serializer.Serialize(stream, allRecords);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79867647/c-sharp-xml-serialization-merging-multiple-lists-before-saving[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия