using System;
using System.Collections.Generic;
using System.Linq;
public class Test
{
class Device
{
public List<string> Interfaces { get; set; }
}
static List<Device> allDevices = new List<Device>()
{
new Device{Interfaces=new List<string>{"1","2","3"}},new Device{Interfaces=new List<string>{"1","2","3"}},
new Device{Interfaces=new List<string>{"1","NO!","3"}},new Device{Interfaces=new List<string>{"1","2","3"}},
new Device{Interfaces=new List<string>{"1","2","3"}},new Device{Interfaces=new List<string>{"1","2","3"}},
};
public static void Main()
{
IEnumerable<string> commonSubset = new List<string>(allDevices.First().Interfaces);
foreach (List<string> interfaces in allDevices.Skip(1).Select(d => d.Interfaces))
{
commonSubset = commonSubset.Intersect(interfaces);
if (!commonSubset.Any())
break;
}
Console.Write(String.Join(",", commonSubset.ToArray()));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CiAgICBjbGFzcyBEZXZpY2UKICAgIHsKICAgICAgICBwdWJsaWMgTGlzdDxzdHJpbmc+IEludGVyZmFjZXMgeyBnZXQ7IHNldDsgfQogICAgfQogICAgCiAgICBzdGF0aWMgTGlzdDxEZXZpY2U+IGFsbERldmljZXMgPSBuZXcgTGlzdDxEZXZpY2U+KCkgCiAgICB7IAogICAgICAgIG5ldyBEZXZpY2V7SW50ZXJmYWNlcz1uZXcgTGlzdDxzdHJpbmc+eyIxIiwiMiIsIjMifX0sbmV3IERldmljZXtJbnRlcmZhY2VzPW5ldyBMaXN0PHN0cmluZz57IjEiLCIyIiwiMyJ9fSwKICAgICAgICBuZXcgRGV2aWNle0ludGVyZmFjZXM9bmV3IExpc3Q8c3RyaW5nPnsiMSIsIk5PISIsIjMifX0sbmV3IERldmljZXtJbnRlcmZhY2VzPW5ldyBMaXN0PHN0cmluZz57IjEiLCIyIiwiMyJ9fSwKICAgICAgICBuZXcgRGV2aWNle0ludGVyZmFjZXM9bmV3IExpc3Q8c3RyaW5nPnsiMSIsIjIiLCIzIn19LG5ldyBEZXZpY2V7SW50ZXJmYWNlcz1uZXcgTGlzdDxzdHJpbmc+eyIxIiwiMiIsIjMifX0sCiAgICB9OwogICAKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKICAgICAgICBJRW51bWVyYWJsZTxzdHJpbmc+IGNvbW1vblN1YnNldCA9IG5ldyBMaXN0PHN0cmluZz4oYWxsRGV2aWNlcy5GaXJzdCgpLkludGVyZmFjZXMpOwogICAgICAgIGZvcmVhY2ggKExpc3Q8c3RyaW5nPiBpbnRlcmZhY2VzIGluIGFsbERldmljZXMuU2tpcCgxKS5TZWxlY3QoZCA9PiBkLkludGVyZmFjZXMpKQogICAgICAgIHsKICAgICAgICAgICAgY29tbW9uU3Vic2V0ID0gY29tbW9uU3Vic2V0LkludGVyc2VjdChpbnRlcmZhY2VzKTsKICAgICAgICAgICAgaWYgKCFjb21tb25TdWJzZXQuQW55KCkpCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQ29uc29sZS5Xcml0ZShTdHJpbmcuSm9pbigiLCIsIGNvbW1vblN1YnNldC5Ub0FycmF5KCkpKTsKCX0KfQ==