.NET 4.x Объединение одинаковых элементов коллекции - C#
Формулировка задачи:
Есть
Создаю коллекцию и заполняю её
Могут встречаться одинаковые элементы по
Листинг программы
- public interface ISpecificationItem
- {
- string Designation { get; set; }
- string Name { get; set; }
- Guid Guid { get; set; }
- EDocumentSection Type { get; }
- }
- public enum EDocumentSection
- {
- [Description("Документация")]
- Docs,
- [Description("Детали")]
- Parts
- }
- public class PartSpecification: ISpecificationItem
- {
- public string Designation { get; set; }
- public string Name { get; set; }
- public Guid Guid { get; set; }
- public EDocumentSection Type => EDocumentSection.Parts;
- }
- public class DocumentationSpecification : ISpecificationItem
- {
- public string Designation { get; set; } = String.Empty;
- public Guid Guid { get; set; } = Guid.NewGuid();
- public string Name { get; set; } = String.Empty;
- public EDocumentSection Type => EDocumentSection.Docs;
- }
Листинг программы
- ObservableCollection<ISpecificationItem> all = new ObservableCollection<ISpecificationItem>();
Name
и по Designation
Надо: слить одинаковые айтемы в один.
К примеру, в коллекции есть 3 элемента. 2 элемента PartSpecification
сName = "Деталька"
и Designation = "АБВГ.1000"
и 1 элемент DocumentationSpecification
сName="хелп"
и Designation = "буклет"
В результате слияния в коллекции должно остаться 2 элемента: 1 PartSpecification
и 1DocumentationSpecification
Как такое сделать?Решение задачи: «.NET 4.x Объединение одинаковых элементов коллекции»
textual
Листинг программы
- var distinct = from item in all
- group item by new { item.Name, item.Designation } into matches
- select matches.First();
- all = new ObservableCollection<ISpecificationItem>(distinct);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д