说我有一个列表List<MyObject> myObjectList
。 MyObject
对象有一个名为Order
的属性,它的类型为int
。我如何确定myObjectList
中的两个或多个对象是否使用LINQ-to-objects相同的Order
?根据某些属性确定列表中的两个或多个对象是否相等
回答
的Count()
方法需要一个谓语,所以你会做这样的事情:
if(myObjectList.Count(x => x.Order == 1) >= 2)
{
// Do something
}
不是一个纯粹的Linq-To-Objects-Solution,但如何:
var ordersList = new List<Order>(myObjectList.Select(obj => obj.Order);
bool allUnique = ordersList.Count == new HashSet<Order>(ordersList).Count;
人们将不得不测试这里介绍的所有方法的性能。我会小心的,否则你会以一些慢的O(n²)查找结果快速结束。
您可以通过避免中间'List
什么是'O(n^2)'查找? – jason 2010-01-29 15:21:54
@Luke,yap谢谢,我过于复杂。当然,ordersList将始终与原始列表具有相同的计数。 – herzmeister 2010-01-29 15:37:34
bool hasDuplicates = myObjectList.Count >
new HashSet<int>(myObjectList.Select(x => x.Order)).Count;
Distinct
怎么样?
bool allUnique = ordersList.Count == ordersList.Select(o => o.Order).Distinct().Count()
- 1. 确定两个对象是否相等
- 2. 确定序列中两个或多个元素是否具有相同属性
- 3. 确定两个类中的所有属性是否相等
- 4. 根据某些标准从列表中删除多个对象
- 5. 如何在C#中比较这些对象的一个或多个属性上的两个对象列表?
- 6. 确定两个复数是否相等
- 7. 根据表单的两个字段为对象指定属性
- 8. 测试两个对象是否相等
- 9. 如何根据具有多个属性的对象列表中的单个属性返回相同的元素?
- 10. 两个对象的相等性
- 11. 使用XPath比较两个XML对象的准确性是否相等
- 12. 确定某个对象的属性是ko.observable
- 13. 比较Prolog中的两个列表,以确定这两个列表的等值元素是否相同计数
- 14. 如何根据sqlalchemy中的某个属性排序对象?
- 15. WPF:将列表动态绑定到(某些)对象的属性
- 16. 如何确定2个日期对象是否相等?
- 17. 如何比较C++中的两个ostream对象是否相等?
- 18. (VB.NET)根据多个属性查找对象列表中的所有重复项
- 19. 确定对象属性是否为空
- 20. 根据单个对象对某个方法的响应,是否可以对对象列表进行排序?
- 21. 对两个对象做些什么,测试结果是否相等
- 22. 根据某些条件从多个表中读取列值 - postgreSQL
- 23. 如何检查所有两个对象的属性是否相等,包括派生的属性?
- 24. 在Rails中,我如何确定两个URL是否相等?
- 25. 如何检查两个json对象在java中是否相等?
- 26. 在AS3中,如何检查两个JSON对象是否相等?
- 27. 如何在xunit.net中测试两个对象是否相等?
- 28. 如何测试python中两个对象是否相等?
- 29. 如何根据某些属性将对象分块为块?
- 30. 在列表中查找某些属性具有相同值的对象
这只会检查是否有与'MyObject.Order'等于'1'的重复。它忽略了与'MyObject.Order'相同的任何其他'int'重复的可能性。 – jason 2010-01-29 14:44:39
这只会测试是否有多个对象的Order == 1,而不是如果有两个对象具有相同(未知)的值。 – 2010-01-29 14:45:30