>

클래스 "아이템"이 있습니다 :

   public class Item
    {
        public int Id { get; set; }
        public decimal Price { get; set; }
        public override bool Equals(object obj)
        {
            if (obj is Item item)
                return item.Id == Id;
            return false;
        }
        // GetHashCode omitted...
    }

연합해야 할 두 개의 목록이 있습니다 :

       var items1 = new List<Item>
        {
            new Item { Id = 1, Price = 10 },
            new Item { Id = 2, Price = 10 },
            new Item { Id = 3, Price = 10 },
        };
        var items2 = new List<Item>
        {
            new Item { Id = 1, Price = 10 },
            new Item { Id = 2, Price = 8 },
            new Item { Id = 4, Price = 10 },
        };

내가 이렇게 노조 :

var union = items1.Union(items2).ToList();

그러나 가격이 가장 낮은 품목이 노조에 있다는 제약도 필요합니다. 예를 들어 위의 목록에서 "items2"의 Item.ID = 2는 공용체에 있어야합니다. 결과는 다음 4 가지 항목으로 구성된 목록이어야합니다.

  • 항목 {Id = 1, 가격 = 10}
  • 항목 {Id = 2, 가격 = 8} // Price = 10 인 제품이 아님
  • 항목 {Id = 3, 가격 = 10}
  • 항목 {Id = 4, 가격 = 10}

C #에서이 작업을 수행하는 우아한 방법이 있습니까 (바람직하게는 Linq 사용)?

  • 이전 Flutter에서 두 번째 앱 바를 제거하는 방법
  • 다음 excel - 명명 된 범위가있는 셀 입력을 기반으로 범위를 설정하십시오