使用列表作为对象从列表中删除重复项

时间:2013-08-20 12:56:22

标签: c# linq

我有一个列表,该类作为结构如下

   class cl
    {
        public string name1{ get; set; }
        public string name2{ get; set; }
        public string name3{ get; set; }
        public List<c2> c2List{ get; set; }
    }
   class c2
    {
        public string st1{ get; set; }
        public string str2{ get; set; }
    }

现在我有C1类的列表,我需要删除该列表中的重复项 任何人都可以帮助我,我该怎么办

2 个答案:

答案 0 :(得分:1)

引用c2List时,请按以下方式调用它:

var distinctList = c1.c2List.Distinct();

(假设c1在代码中进一步实例化)

答案 1 :(得分:0)

我认为这是你的事后......

        var c2Items = new c2[] 
        {
            new c2 { st1 = "value 1", str2 = "value 2" },
            new c2 { st1 = "value 2", str2 = "value 1" },
            new c2 { st1 = "value 1", str2 = "value 2" }
        };

        var parent = new cl() { c2List = new List<c2>(c2Items) };

        IEnumerable<c2> distinctitems = 
            parent
                .c2List
                .GroupBy(o => new { o.st1, o.str2 })
                .Select(o => o.First());