从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)
。
我不明白我怎么能那样做。
我会使用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();