这是我的字典数据类型:
private Dictionary<String, List<PriceAndStandard>>
PriceAndStandard是一个结构:
struct PriceAndStandard
{
public double mePrice;
public int? meStandard;
}
我希望每个项目都能获得价格和价格。
我收到错误
Type of conditional expression cannot be determined because there is no implicit conversion between 'System.Collections.Generic.List<AspDotNetStorefront.showproduct.PriceAndStandard>
如果它是一个基本的键 - 字符串值对,我将能够获取该值:
shaftModelDictionary.Values.ToList();
但是因为我有一个列表,所以我真的需要压缩数据以便存储它。
工作代码:
foreach (string option in product.AvailableClubOptions.ShaftModel)
{
string shaftModelText = option;
if (minPriceForShaftMaterial > 0 && !string.IsNullOrEmpty(option))
{
List<PriceAndStandard> Paul = shaftModelDictionary.Keys.ToList();
double priceForShaftModel = shaftModelDictionary.[option];
double priceForSelectedShaftModel = !String.IsNullOrEmpty(shaftModel) ? shaftModelDictionary[shaftModel] : 0;
更新
似乎option
存在问题,因为这是一个字符串,与我的字典列表中的值不兼容。
更新2:
foreach (string option in product.AvailableClubOptions.ShaftModel)
{
string shaftModelText = option;
if (minPriceForShaftMaterial > 0 && !string.IsNullOrEmpty(option))
{
double priceForShaftModel = shaftModelDictionary[option].mePrice;
double priceForSelectedShaftModel = !String.IsNullOrEmpty(shaftModel) ? shaftModelDictionary[shaftModel].mePrice : 0m;
double priceDelta = 0.0d;
double MinimumPrice = Convert.ToDouble(ltOurPrice.InnerText.Replace("$", ""));
&#39;列表&#39;不包含&#39; mePrice&#39;的定义没有延伸方法&#39; mePrice&#39;接受类型&#39; List&#39;
的第一个参数答案 0 :(得分:0)
尝试:
double priceForSelectedShaftModel = !String.IsNullOrEmpty(shaftModel) ? shaftModelDictionary[shaftModel].first().mePrice : 0d;
编辑: 我的第一个答案是错误的,抱歉。字典中的值是列表。因此,当您检索值(这是PriceAndStandard对象的列表)时,您需要使用该列表或在列表中查找特定的PriceAndStandard对象以进行操作。在我展示的示例中,我使用first()方法查找列表中的第一个对象。您可能想要阅读LINQ并使用where()方法或类似的东西。
我不确定你要完成什么...你确定你想要你的词典中的值是列表吗?这没有什么不对,除了它有点不寻常。也许你在想这个?:
private Dictionary<String, PriceAndStandard>
0m也是十进制,0d是double。我的坏。