These are simple operations, and there's no reason to make them specific to Strings. You can use the generic function below to get the distinct set of items of any two sets of any single type.
Module Module1
' Ava, Emma, Olivia, Sophia
Public Function GetDistinctItems(Of T)(items1 As IEnumerable(Of T), items2 As IEnumerable(Of T)) As IEnumerable(Of T)
Return items1.Concat(items2).Distinct()
End Function
' Emma, Olivia
Public Function GetDuplicateItems(Of T)(items1 As IEnumerable(Of T), items2 As IEnumerable(Of T)) As IEnumerable(Of T)
Return items1.Join(items2, Function(i) i, Function(i) i, Function(i, j) i)
End Function
' Ava, Sophia
Public Function GetUniqueItems1(Of T)(items1 As IEnumerable(Of T), items2 As IEnumerable(Of T)) As IEnumerable(Of T)
Return items1.Concat(items2).Except(GetDuplicateItems(items1, items2))
End Function
' Ava, Sophia
Public Function GetUniqueItems2(Of T)(items1 As IEnumerable(Of T), items2 As IEnumerable(Of T)) As IEnumerable(Of T)
Return items1.Concat(items2).GroupBy(Function(i) i).Where(Function(i) i.Count() = 1).Select(Function(i) i.Key)
End Function
Public Sub Main()
Dim names1 = {"Ava", "Emma", "Olivia"}
Dim names2 = {"Olivia", "Sophia", "Emma"}
Console.WriteLine(String.Join(", ", GetDistinctItems(names1, names2)))
' or simply do it inline
Console.WriteLine(String.Join(", ", names1.Concat(names2).Distinct()))
Console.WriteLine(String.Join(", ", GetDuplicateItems(names1, names2)))
Console.WriteLine(String.Join(", ", GetUniqueItems1(names1, names2)))
Console.WriteLine(String.Join(", ", GetUniqueItems2(names1, names2)))
End Sub
End Module
The LINQ operation for distinct is so simple that it also fits nicely inline in your Console.Writeline.