如何从自定义列表中获取不同的列表?

ert*_*002 5 c# linq equality list

我正在使用c#framework 3.5 ..

我的班级在这里

  public class KonumBilgisi
{

    public string Enlem { get; set; }
    public string Boylam { get; set; }
    public string KonumAdi { get; set; }
    public DateTime Tarih { get; set; }
    public byte SucTuruId { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我有一份清单

列出konumlar;

好吧,我希望得到的项目相当于他们的enlem和boylam变量.

正如您在下面的照片中看到的那样

在此输入图像描述

我想要与enlem和boylam进行比较,如果它是平等的我想让他们到不同的列表..

我可以用循环但是想要使用LINQ,但我无法做到这一点.我使用groupby但它没有错...

   var distinctList = konumlar.GroupBy(x => x.Enlem)
                        .Select(g => g.First())
                        .ToList().GroupBy(s=>s.Boylam).Select(g => g.First())
                        .ToList();
Run Code Online (Sandbox Code Playgroud)

编辑 其实我无法解释我的问题..

也许不同是不正确的单词..我想分开彼此相等的项目..

如:

我将pendik项目放在一个列表中,其他人将在konumlar中,但pendik项目将从konumlar列表中删除

编辑2

好的,我想像这样单独列出

在此输入图像描述

在此输入图像描述

das*_*ght 4

你就快到了 - 不要使用两个单独的GroupBy调用,而是使用一个由两部分组成的密钥的调用:

var distinctList = konumlar
    .GroupBy(s => new {s.Enlem, s.Boylam})
    .Select(g => g.First())
    .ToList();
Run Code Online (Sandbox Code Playgroud)

编辑:要获取除重复项目之外的所有项目,请按如下方式修改查询:

var noPendiks = konumlar
    .GroupBy(s => new {s.Enlem, s.Boylam})
    .Where(g => g.Count() == 1)
    .Select(g => g.Single()) // You know there's only one
    .ToList();
Run Code Online (Sandbox Code Playgroud)

上面将为您提供除“pendik”之外的所有项目。要仅获取“pendik”,请使用以下查询:

var pendiks = konumlar
    .GroupBy(s => new {s.Enlem, s.Boylam})
    .Where(g => g.Count() > 1)
    .SelectMany(g => g)
    .ToList();
Run Code Online (Sandbox Code Playgroud)