0
我有下面的代码,我想变成一个通用的方法。如何使我的方法通用,从而可以传递属性?
List<VariationAttribute> variationAttributeList = new List<VariationAttribute>();
//get a distinct list of colours
var colours = ap21Products.GroupBy(p => p.ColourCode).Select(g => g.First()); --this is different
var colourVariationAttribute = new VariationAttribute();
colourVariationAttribute.AttributeId = "color"; --this is different
colourVariationAttribute.VariationAttributeId = "color"; --this is different
colourVariationAttribute.DisplayName = new DisplayName() { Text = "Colour" }; --this is different
colourVariationAttribute.VariationAttributeValues = new VariationAttributeValues();
foreach (var c in colours)
{
var attributeValue = new VariationAttributeValue();
attributeValue.Value = c.ColourCode; --this is different
attributeValue.DisplayValue = new DisplayValue() { Text = c.ColourName }; --this is different
colourVariationAttribute.VariationAttributeValues.VariationAttributeValue.Add(attributeValue);
}
variationAttributeList.Add(colourVariationAttribute);
我的评论,我想通过这些数值在 - 字符串值都很好,但我不知道我如何去传递一个动态属性名称。
例如,在第4行,它是由p.ColourCode
分组,但我希望能够通过属性进行分组。
同样,从底部4行,Text
属性被设置为c.ColourName
,但我想通过该属性也显示在那里。
我该怎么办? 我用这样的签名尝试,但都没有成功:
private VariationAttribute createVariationAttribute<TKey>(
IList<Ap21Product> ap21Products,
string attributeId,
string attributeName,
Func<Ap21Product, TKey> groupingProperty,
Func<Ap21Product, TKey> groupingPropertyValue,
)
谢谢..工作一种享受。 – Lock