.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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д