我一直在挠头几个小时,可以使用一些帮助......
我有 3 个对象列表。每个列表可以包含相同的对象(但不是必须的)。我想要一种算法来测试每个列表中是否至少有一个唯一对象。
编辑:一个项目只能在每个列表中出现一次,但可以在多个列表中。
编辑:有一个伪第 4 个列表 - 3 个列表中的每个列表都有 1 个项目。那是必须包含唯一性的列表。总共可能有 3 个项目,每个列表中的每个项目。这应该返回 true,因为第 4 个列表可能包含唯一值。
编辑:这是我到目前为止想出的,但我不知道这是多么有效,或者即使它有效!
bool Uniques( List<Item> list1, List<Item> list2, List<Item> list3 ) {
foreach( Item item1 in list1 ) {
foreach( Item item2 in list2 ) {
if ( item1!=item2 ) {
foreach( Item item3 in list3 ) {
if ( item3!=item1 && item3!=item2 ) return true;
}
}
}
}
return false;
}
编辑:为了说明,这里有一个例子。
从颜色的整体列表中:红色、绿色、蓝色、黄色、青色、洋红色、白色、黑色、橙色、紫色。
列表 1 包含红色、绿色
列表 2 包含红色
列表 3 包含蓝色、橙色
结果为 FALSE
列表 1 包含红色、绿色
列表 2 包含红色、绿色
列表 3 包含红色、绿色
结果为 FALSE
列表 1 包含红色、绿色
列表 2 包含黄色
列表 3 包含红色、绿色
结果为 TRUE