从c#中只存在一次的列表中获取值

本文关键字:一次 列表 获取 存在 | 更新日期: 2023-09-27 18:11:37

我有一个c# int-List的问题。例如,列表中有7个值(12, 65, 312, 52, 312, 85, 14)。值可能出现多次(在本例中是值312)。

第一件事是,我用' List . sort()'对List排序。然后我的目标是,得到一个新列表每个值只存在一次。在本例中,新列表将是(12, 14, 52, 65, 85)

我不明白我怎么能那样做。

从c#中只存在一次的列表中获取值

我会使用Linq…

var newList = new List<int>() { 12, 65, 312, 52, 312, 85, 14 }
            .GroupBy(x => x)
            .Where(x => x.Count() == 1)
            .Select(x => x.Key)
            .ToList();

应该这样做:

var intList = new List<int>() { 12, 65, 312, 52, 312, 85, 14 };
var filtered = intList.Where(x => intList.Count(z => z == x) == 1).OrderBy(x => x);
foreach(int i in filtered)
{
    Console.WriteLine(i);   
}

DotNetFiddle

只是一些额外的信息,我正在寻找相同的解决方案。然而,我想查询一个属性(文件名)上的对象集合…并将正确的对象返回到列表中…

queryDatabase.GroupBy(x => x.Filename).Where(x => x.Count() == 1).Select(x => x.FirstOrDefault()).ToList();