Remove duplicates in the list using linq

前端 未结 11 1640
没有蜡笔的小新
没有蜡笔的小新 2020-11-22 03:04

I have a class Items with properties (Id, Name, Code, Price).

The List of Items is populated with duplicated items.

F

11条回答
  •  温柔的废话
    2020-11-22 03:40

    When you don't want to write IEqualityComparer you can try something like following.

     class Program
    {
    
        private static void Main(string[] args)
        {
    
            var items = new List();
            items.Add(new Item {Id = 1, Name = "Item1"});
            items.Add(new Item {Id = 2, Name = "Item2"});
            items.Add(new Item {Id = 3, Name = "Item3"});
    
            //Duplicate item
            items.Add(new Item {Id = 4, Name = "Item4"});
            //Duplicate item
            items.Add(new Item {Id = 2, Name = "Item2"});
    
            items.Add(new Item {Id = 3, Name = "Item3"});
    
            var res = items.Select(i => new {i.Id, i.Name})
                .Distinct().Select(x => new Item {Id = x.Id, Name = x.Name}).ToList();
    
            // now res contains distinct records
        }
    
    
    
    }
    
    
    public class Item
    {
        public int Id { get; set; }
    
        public string Name { get; set; }
    }
    

提交回复
热议问题