Каков наилучший подход к объединению двух объектов в списке на С#? [дубликат] ⇐ C#
Каков наилучший подход к объединению двух объектов в списке на С#? [дубликат]
У меня есть список ниже, где LineId может быть таким же. В таких случаях я хочу объединить их там, где они распространены. т. е., если LineId один и тот же, суммируйте Цена, Итого, AccountingTotal и объедините Описание текст.
Я думаю, что мой метод не является оптимальным, если этот список огромен.
[*]Как я могу повысить эффективность этой работы? [*]Как лучше всего добиться того же результата?
{ «Линии»: [ { «Идентификатор»: 1, «Бухгалтерский итог»: 10.2, «Описание»: «Описание 1», «Цена»: «10.00», «Итого»: «10.00», "Идентификатор линии": "803" }, { «Идентификатор»: 2, «Бухгалтерский итог»: 10, «Описание»: «Описание 2», «Цена»: «10.00», «Итого»: «10.00», "Идентификатор линии": "804" }, { «Идентификатор»: 3, «Бухгалтерский итог»: 10.2, «Описание»: «Описание 3», «Цена»: «10.00», «Итого»: «10.00», "Идентификатор линии": "803" } ] } Желаемый список:
{ «Линии»: [ { «Идентификатор»: 1, «Бухгалтерский итог»: 20,4, «Описание»: «Описание 1 | Описание 3», «Цена»: «20.00», «Итого»: «20.00», "Идентификатор линии": "803" }, { «Идентификатор»: 2, «Бухгалтерский итог»: 10, «Описание»: «Описание 2», «Цена»: «10.00», «Итого»: «10.00», "Идентификатор линии": "804" } ] } Код:
линия общественного класса { общественный ИНТ Id {получить; набор; } // Это должна быть комбинация идентификаторов. т. е. «1|2|3» и т. д. общественная строка MergedId {get; набор; } общедоступная десятичная дробь? AccountingTotal {получить; набор; } общедоступная строка Описание {get; набор; } публичная строка Цена {get; набор; } общедоступная строка Total {get; набор; } общественная строка LineId {получить; набор; } } // Данные вар строки = новый список { новая линия { Идентификатор = 1, Бухгалтерский итог = (десятичный?) 10,2, Описание = "Описание 1", Цена = "10,00", Итого = "10,00", Идентификатор линии = "803" }, новая линия { Идентификатор = 2, Бухгалтерский итог = (десятичный?) 10,2, Описание = "Описание 2", Цена = "10,00", Итого = "10,00", Идентификатор линии = "804" }, новая линия { Идентификатор = 3, Описание = "Описание 3", Цена = "10,00", Итого = "10,00", Идентификатор линии = "803" } }; вар objNew = новый список(); for (var i = 0; я x.First()).ToList();
У меня есть список ниже, где LineId может быть таким же. В таких случаях я хочу объединить их там, где они распространены. т. е., если LineId один и тот же, суммируйте Цена, Итого, AccountingTotal и объедините Описание текст.
Я думаю, что мой метод не является оптимальным, если этот список огромен.
[*]Как я могу повысить эффективность этой работы? [*]Как лучше всего добиться того же результата?
{ «Линии»: [ { «Идентификатор»: 1, «Бухгалтерский итог»: 10.2, «Описание»: «Описание 1», «Цена»: «10.00», «Итого»: «10.00», "Идентификатор линии": "803" }, { «Идентификатор»: 2, «Бухгалтерский итог»: 10, «Описание»: «Описание 2», «Цена»: «10.00», «Итого»: «10.00», "Идентификатор линии": "804" }, { «Идентификатор»: 3, «Бухгалтерский итог»: 10.2, «Описание»: «Описание 3», «Цена»: «10.00», «Итого»: «10.00», "Идентификатор линии": "803" } ] } Желаемый список:
{ «Линии»: [ { «Идентификатор»: 1, «Бухгалтерский итог»: 20,4, «Описание»: «Описание 1 | Описание 3», «Цена»: «20.00», «Итого»: «20.00», "Идентификатор линии": "803" }, { «Идентификатор»: 2, «Бухгалтерский итог»: 10, «Описание»: «Описание 2», «Цена»: «10.00», «Итого»: «10.00», "Идентификатор линии": "804" } ] } Код:
линия общественного класса { общественный ИНТ Id {получить; набор; } // Это должна быть комбинация идентификаторов. т. е. «1|2|3» и т. д. общественная строка MergedId {get; набор; } общедоступная десятичная дробь? AccountingTotal {получить; набор; } общедоступная строка Описание {get; набор; } публичная строка Цена {get; набор; } общедоступная строка Total {get; набор; } общественная строка LineId {получить; набор; } } // Данные вар строки = новый список { новая линия { Идентификатор = 1, Бухгалтерский итог = (десятичный?) 10,2, Описание = "Описание 1", Цена = "10,00", Итого = "10,00", Идентификатор линии = "803" }, новая линия { Идентификатор = 2, Бухгалтерский итог = (десятичный?) 10,2, Описание = "Описание 2", Цена = "10,00", Итого = "10,00", Идентификатор линии = "804" }, новая линия { Идентификатор = 3, Описание = "Описание 3", Цена = "10,00", Итого = "10,00", Идентификатор линии = "803" } }; вар objNew = новый список(); for (var i = 0; я x.First()).ToList();
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Каков наилучший подход для доступа к конкретным методам подкласса с использованием Java?
Anonymous » » в форуме JAVA - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Каков наилучший подход к выполнению сценария bash внутри контейнера Docker?
Anonymous » » в форуме Python - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-