using System.Collections.Generic;
public class CombinedValuePair {
public string CombinationText { get; set; }
public string CombinationValue { get; set; }
public class ProductAttribute {
public int idProductAttribute { get; set; }
public string displayText { get; set; }
public class ProductAttributeValue {
public int idProductAttributeValue { get; set; }
public int idProductAttribute { get; set; }
public string displayText { get; set; }
public static void Main()
var productAttributeList = new List<ProductAttribute>();
productAttributeList.Add(new ProductAttribute {
productAttributeList.Add(new ProductAttribute {
var productAttributeValueList = new List<ProductAttributeValue>();
productAttributeValueList.Add(new ProductAttributeValue {
idProductAttributeValue = 1,
productAttributeValueList.Add(new ProductAttributeValue {
idProductAttributeValue = 2,
productAttributeValueList.Add(new ProductAttributeValue {
idProductAttributeValue = 3,
productAttributeValueList.Add(new ProductAttributeValue {
idProductAttributeValue = 4,
productAttributeValueList.Add(new ProductAttributeValue {
idProductAttributeValue = 5,
var combinedValuePairList = new List<CombinedValuePair>();
var sizeAttributeList = productAttributeValueList.FindAll(a => a.idProductAttribute == 1);
var colorAttributeList = productAttributeValueList.FindAll(a => a.idProductAttribute == 2);
foreach (var s in sizeAttributeList)
foreach(var c in colorAttributeList)
combinedValuePairList.Add(new CombinedValuePair
CombinationText = String.Format("{0} - {1}", s.displayText, c.displayText),
CombinationValue = String.Format("{0}, {1}", s.idProductAttributeValue, c.idProductAttributeValue)
foreach (var c in combinedValuePairList)
Console.WriteLine("[{0}], [{1}]", c.CombinationText, c.CombinationValue);