日期:2014-05-20  浏览次数:20947 次

求各位高手解答~~~
[code=C#][/code]

string countryDHLId = "Area" + countryInfo.DHLArea.ToString();

var info = from df in db.DHLFreights
  where df.WeightMax >= weight && df.WeightMin <= weight
  select new
  {
  countryDHLId
  };

double dhlFreight = double.Parse(info);

我想查DHLFreights 的某一个字段 countryDHLId 可能是Area1~~~Area9, Area1这个字段的类型是string 可是为什么 不能把info转化为double类型呢

------解决方案--------------------
C# code
string countryDHLId = "Area" + countryInfo.DHLArea.ToString();

var info = from df in db.DHLFreights
  where df.WeightMax >= weight && df.WeightMin <= weight
  select  GetPropertyValue(df,countryDHLId);
 
double dhlFreight = double.Parse(info.FirstOrDefault());

private static object GetPropertyValue(object obj, string property)  
{  
    System.Reflection.PropertyInfo propertyInfo=obj.GetType().GetProperty(property);  
    return propertyInfo.GetValue(obj, null);  
}

------解决方案--------------------
info是一个集合列表

应该取其中一个值进行转化

double dhlFreight = double.Parse(info.First().countryDHLId);

------解决方案--------------------
LINQ 返回的是一个集合。
取出集合的第一个元素用.First()
double.Parse(info.First().countryDHLId)