У меня есть объект, который содержит несколько списков.Сравнение двух списков объектов со списками строк и без перекрытия
Public Class aObject
Public Property title
Public Property aList As List(Of String)
Public Property bList As List(Of String)
Public Property cList As List(Of String)
Public Property dList As List(Of String)
End Class
У меня есть другой объект, где хранятся все объекты aObjects.
Public Class bObject
Private _LocalCollection As List(Of aObject)
Private _RemoteCollection As List(Of aObject)
End Class
Каждый список в объекте aObject - это другая настройка. Если я добавлю новый параметр, я хочу быть уверенным, что все комбинации никогда не пересекаются. Итак, если я сохранял буквы в списке aList и числах в bList и имел объект с {1,6,7} и {a, d, z}, я бы не захотел добавить еще одну настройку со списками {2,6,8 } и {a, f, g}. Однако я хотел бы добавить списки {1,6,7} и {b, c, f}. Все четыре списка аналогичны. Мне нужно проверить комбинацию из четырех. Я могу использовать рекурсивный алгоритм и проверять все значения, но мне было интересно, есть ли другой способ.
Я использовал следующий предложенный ответ и реализовал его:
Public Function checkDuplicates(ByVal strChampions As List(Of String), ByVal strSummonerSpells As List(Of String), ByVal strModes As List(Of String), ByVal strMaps As List(Of String)) As Boolean
Dim booDuplicates As Boolean = False
For Each setting In _LocalSettings
Dim l1 = setting.champions.Intersect(strChampions)
If l1.Count() > 0 Then
Dim l2 = setting.summonerspells.Intersect(strSummonerSpells)
If l2.Count() > 0 Then
Dim l3 = setting.modes.Intersect(strModes)
If l3.Count() > 0 Then
Dim l4 = setting.maps.Intersect(strMaps)
If l4.Count() > 0 Then
booDuplicates = booDuplicates Or True
' I am going to create the duplicate settings here to know where to overwrite.
End If
End If
End If
End If
Next
Return booDuplicates
End Function
Звуки большой. Я должен повторять все объекты, но я понял, что на самом деле важно то, что пересекается. Таким образом, я могу перезаписать или нет. Теперь мне просто нужно выяснить, как перезаписать объекты. Спасибо. –
Я могу показать свой код для дальнейшего использования. –