更改通用列表字段中的类型<>
Change type in a Field of a Generic List<>
我有一个 class 的列表调用 Indicator,它需要转换一个属性的值 IndicatorValue 到 Double.
这是class
的例子
public class Indicator
{
public int ObjID { get; set; }
public string IndicatorValue { get; set; }
}
这是class填写列表的虚拟数据。
IList<Indicator> IndicatorList = new List<Indicator>() {
new Indicator(){ ObjID=1, IndicatorValue="1.8 s"},
new Indicator(){ ObjID=2, IndicatorValue="1.5S"},
new Indicator(){ ObjID=3, IndicatorValue="1.7 "},
new Indicator(){ ObjID=4, IndicatorValue="1.8 S"}
};
I 替换新列表中的字符 "s"、S 和“ ”
var lstResult = (from fx in IndicatorList
select new Indicator
{
ObjID = fx.ObjID,
*(Double)*IndicatorValue = fx.IndicatorValue.Replace("S", "").Replace(" ", "").Replace("s", "")
}
).ToList();
但我需要在新列表中将字段 IndicatorValue 转换为 Double。
您无法在运行时更改 属性 类型。
为什么不在封装转换的Indicator
class中添加一个新的属性:
public class Indicator
{
public int ObjID { get; set; }
public string IndicatorValue { get; set; }
public double IndicatorValueAsDouble => double.Parse(IndicatorValue.Replace("S", "").Replace(" ", "").Replace("s", ""));
}
或项目到 DTO:
public class IndicatorDTO
{
public int ObjID { get; set; }
public double IndicatorValue { get; set; }
}
select new IndicatorDTO
{
ObjID = fx.ObjID,
IndicatorValue = double.Parse(fx.IndicatorValue.Replace("S", "").Replace(" ", "").Replace("s", ""));
}
我有一个 class 的列表调用 Indicator,它需要转换一个属性的值 IndicatorValue 到 Double.
这是class
的例子 public class Indicator
{
public int ObjID { get; set; }
public string IndicatorValue { get; set; }
}
这是class填写列表的虚拟数据。
IList<Indicator> IndicatorList = new List<Indicator>() {
new Indicator(){ ObjID=1, IndicatorValue="1.8 s"},
new Indicator(){ ObjID=2, IndicatorValue="1.5S"},
new Indicator(){ ObjID=3, IndicatorValue="1.7 "},
new Indicator(){ ObjID=4, IndicatorValue="1.8 S"}
};
I 替换新列表中的字符 "s"、S 和“ ”
var lstResult = (from fx in IndicatorList
select new Indicator
{
ObjID = fx.ObjID,
*(Double)*IndicatorValue = fx.IndicatorValue.Replace("S", "").Replace(" ", "").Replace("s", "")
}
).ToList();
但我需要在新列表中将字段 IndicatorValue 转换为 Double。
您无法在运行时更改 属性 类型。
为什么不在封装转换的Indicator
class中添加一个新的属性:
public class Indicator
{
public int ObjID { get; set; }
public string IndicatorValue { get; set; }
public double IndicatorValueAsDouble => double.Parse(IndicatorValue.Replace("S", "").Replace(" ", "").Replace("s", ""));
}
或项目到 DTO:
public class IndicatorDTO
{
public int ObjID { get; set; }
public double IndicatorValue { get; set; }
}
select new IndicatorDTO
{
ObjID = fx.ObjID,
IndicatorValue = double.Parse(fx.IndicatorValue.Replace("S", "").Replace(" ", "").Replace("s", ""));
}