0
A
回答
0
using System;
using System.Collections.Generic;
using System.Linq;
class Point
{
int x, y;
public Point(int x, int y)
{
this.x = x;
this.y = y;
}
public int X
{
get { return x; }
set { x = value; }
}
public int Y
{
get { return y; }
set { y = value; }
}
}
class Test
{
static void Main()
{
var collection = new List<Point>
{
new Point(1,1),
new Point(1,2),
new Point(1,1),
new Point(1,2),
new Point(3,3),
new Point(4,5),
};
var result = collection.Where(a => collection.Count(b => b.X == a.X && b.Y == a.Y) == 1);
foreach (var val in result)
Console.WriteLine(val.X + "," + val.Y);
}
}
//output:
3,3
4,5
+0
谢谢。你的解决方案实际上为我工作。 – Vahid
0
1
该解决方案将一批相同点就是,让你找到组,只有一个成员,并返回该成员。
我还没有检查过实际的运行时间,但很有可能它比在一个Where内部运行Count()操作的解决方案更好,性能明智,因为那可能运行在O(n^2)时间,而GroupBy实现可能更优雅。要做到这一点
var result = points
.GroupBy(p => p)
.Where(group => group.Count() == 1)
.Select(group => group.First());
相关问题
- 1. LINQ:找到频率为1的列表中的项目
- 2. 使用Linq获取列表项目数<>使用Linq
- 3. 使用LINQ从列表中选择“自定义不同”项目
- 4. 使用LINQ选择列表
- 5. LINQ选择项目不在列表中
- 6. 使用LINQ选择唯一项目
- 7. LINQ从列表中选择顶部1 <T>
- 8. 使用Linq多列选择
- 9. 使用Linq从列表中选择列表中包含
- 10. Linq从列表中选择
- 11. 从列表中选择项目,那里的小朋友包含使用LINQ
- 12. 使用LINQ搜索列表<TextBox>中的重复条目使用LINQ
- 13. 使用linq添加项目列表
- 14. 使用linq检索sharepoint列表项目
- 15. 如何使用Linq从匿名IEnumerable集合中选择项目
- 16. 使用LINQ从多维数组中选择未知项目
- 17. 如何使用LINQ从数据库中选择多个项目
- 18. 选择使用LINQ
- 19. 选择使用LINQ
- 20. 选择使用LINQ
- 21. 选择使用linq
- 22. 使用LINQ从属性值中删除项目使用LINQ
- 23. 使用LINQ以选择它们匹配列表,表中的项目
- 24. 如何用linq选择列表中的复制项目?
- 25. 从列表中选择不包含linq的特定项目
- 26. 选择<Thread>对象使用LINQ
- 27. 从使用LINQ,在项目出现在其它两个列表列表中选择项目
- 28. 从列表中选择不同的数据使用LINQ
- 29. 使用LINQ从两个列表中选择不同的元素?
- 30. 使用LINQ列表<FileInfo>比较文件使用LINQ C#
的一种方法是通过分组结果,然后各组计数的记录数。只需重复一次,就可以添加一个where子句,只返回计数为2的记录。 –