2012-04-09 119 views
1

任何人都可以告诉我,如果这可以做到,如果是的话,怎么样?从列表<float>转换为int

我有一个List<float> FocalLengthList,我已经填充了一些值。然后,这个列表被存储在List<List<float>> MainFocalLenghtList中。 但是,在我的应用程序中,我需要使用来自MainFocalLenghtList的值来更新对象3D位置。所以我需要将fromMainFocalLenghtList [0]转换成int

可以这样做,怎么样?

这是我的代码的一小部分来解释。 增加值FocalLengthList然后加入该列表List<List<float>> MainFocalLenghtList

float newFocalLength = focalLength * pixelSize; 
FocalLengthList.Add(newFocalLength); 
MainFocallengthList.Add(FocalLengthList); 
FocalLengthList = new List<float>(); 

然后我打算如何使用这些值(不工作)

int zComponent = MainFocallengthList[0]; 
+0

你们是不是要投单浮到单个int或整个列表到列表的整数?你的问题并不清楚。 – 2012-04-09 20:34:28

+0

我正要问同样的事情。 – MilkyWayJoe 2012-04-09 20:34:50

+2

MainFocallenthList是列表的列表。如果你将一个浮点数列表赋给一个int,你会期望结果如何? – Robaticus 2012-04-09 20:35:07

回答

0

你能做到这样,但是你既需要内部和外部列表的指标:

// The first [0] indicates the index of the nested list within MainFocallengthList 
// The second [0] indicates the index of the item that you want in the nested list 
int zComponent = (int)(MainFocallengthList[0][0]) 
1

我可能会做这样的:

int zComponent = (int)Math.Ceiling(MainFocallengthList[m][n]); 

虽然您想要替换实际值nth项目mthFocalLengthList

3

可以肯定蒙上floatint,只要你明确地这样做(因为它可能涉及精确度的损失)。

您发布的代码的问题在于,您正在将其他列表的列表编入索引。由MainFocallengthList[0]返回的值本身将为List<float>。然后你必须索引到列表才能得到一个你可以实际转换为int的值。

假设两个目标列表和目标浮动,列出均为其各自容器的第一索引:

int zComponent = (int)MainFocalLengthList[0][0]; 

,首先指数回报您添加到MainFocalLengthListFocalLengthList。第二个索引返回您添加到FocalLengthList的值newFocalLength。明确? :)

1

这给一个镜头:

var floatList = new List<float>(); 

var intList = floatList.Select(f => (int)Math.Ceiling(f)).ToList(); 
1

由于MainFocalLengthList是一个List List<float>

var intarr = Array.ConvertAll(MainFocalLengthList[0].ToArray(), f=>(int)f); 
相关问题