Так как у меня не очень много для go в вашем коде, я дам вам более обобщенный пример использования Zip. Допустим, например, что это ваши классы
public class PoliceOsiguranja
{
public string OIB { get; set; }
}
public class Klijent
{
public string OIB { get; set; }
}
Мы создадим новый класс, представляющий комбинацию
public class Combination
{
public PoliceOsiguranja A { get; set; }
public Klijent B { get; set; }
}
. Используя .Zip, мы объединим ваши два списка в список комбинаций. , Скажем, мы начинаем с этих списков
public static List<PoliceOsiguranja> listA = new List<PoliceOsiguranja>
{
new PoliceOsiguranja{ OIB = "PoliceOsiguranja1"},
new PoliceOsiguranja{ OIB = "PoliceOsiguranja2"},
new PoliceOsiguranja{ OIB = "PoliceOsiguranja3"},
};
public static List<Klijent> listB = new List<Klijent>
{
new Klijent { OIB = "klijent1"},
new Klijent { OIB = "klijent2"},
new Klijent { OIB = "klijent3"}
};
Мы можем использовать Zip для создания IEnumerable из комбинаций
IEnumerable<Combination> combinedList
= listA.Zip(listB, (a, b) => new Combination { A = a, B = b });
Теперь мы можем использовать их
foreach(Combination item in combinedList)
{
Console.WriteLine($"PoliceOsiguranja OIB = {item.A.OIB}, Klijent OIB = {item.B.OIB}");
}
Если вы необходимо отсортировать их, скажем, OIB, вы также можете сделать это, выбрав
IEnumerable<Combination> sortedCombinedList = listA.OrderBy(a => a.OIB).Zip(listB.OrderBy(b => b.OIB), (a, b) => new Combination { A = a, B = b });
, но это будет зависеть от вашего варианта использования.