using System;
using System.Globalization;
using System.Linq;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
List<string> listA = new List<string> { "A", "A", "B", "C", "D", "E" };
List<string> listRef = new List<string> { "B", "D" };
var refSet = new HashSet<string>(listRef);
refSet.IntersectWith(listA);
bool anyMoreThanOne = refSet.Any(rs => listA.ContainsMoreThanOnce(rs, StringComparison.OrdinalIgnoreCase));
Console.Write(anyMoreThanOne);
}
}
public static class StringExtensions
{
public static bool ContainsMoreThanOnce(this IEnumerable<string> coll, String value, StringComparison comparer)
{
if (coll == null) throw new ArgumentNullException("col");
bool contains = false;
foreach (string str in coll)
{
if (String.Compare(value, str, comparer) == 0)
{
if (contains)
return true;
else
contains = true;
}
}
return false;
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewogICAgICAgIExpc3Q8c3RyaW5nPiBsaXN0QSA9IG5ldyBMaXN0PHN0cmluZz4geyAiQSIsICJBIiwgIkIiLCAiQyIsICJEIiwgIkUiIH07CiAgICAgICAgTGlzdDxzdHJpbmc+IGxpc3RSZWYgPSBuZXcgTGlzdDxzdHJpbmc+IHsgIkIiLCAiRCIgfTsKCiAgICAgICAgdmFyIHJlZlNldCA9IG5ldyBIYXNoU2V0PHN0cmluZz4obGlzdFJlZik7CiAgICAgICAgcmVmU2V0LkludGVyc2VjdFdpdGgobGlzdEEpOwogICAgICAgIGJvb2wgYW55TW9yZVRoYW5PbmUgPSByZWZTZXQuQW55KHJzID0+IGxpc3RBLkNvbnRhaW5zTW9yZVRoYW5PbmNlKHJzLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWxJZ25vcmVDYXNlKSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZShhbnlNb3JlVGhhbk9uZSk7Cgl9ICAKfQoKcHVibGljIHN0YXRpYyBjbGFzcyBTdHJpbmdFeHRlbnNpb25zCnsKICAgICBwdWJsaWMgc3RhdGljIGJvb2wgQ29udGFpbnNNb3JlVGhhbk9uY2UodGhpcyBJRW51bWVyYWJsZTxzdHJpbmc+IGNvbGwsIFN0cmluZyB2YWx1ZSwgU3RyaW5nQ29tcGFyaXNvbiBjb21wYXJlcikKICAgIHsKICAgICAgICBpZiAoY29sbCA9PSBudWxsKSB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCJjb2wiKTsKICAgICAgICBib29sIGNvbnRhaW5zID0gZmFsc2U7CiAgICAgICAgZm9yZWFjaCAoc3RyaW5nIHN0ciBpbiBjb2xsKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKFN0cmluZy5Db21wYXJlKHZhbHVlLCBzdHIsIGNvbXBhcmVyKSA9PSAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoY29udGFpbnMpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgY29udGFpbnMgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KfQ==