1

誰かがこれができるかどうか教えてもらえますか、もしそうなら、どのように?

いくつ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];
4

5 に答える 5

3

明示的に行う限り、確実に afloatを anにキャストできます (精度が失われる可能性があるため)。int

投稿したコードの問題は、他のリストのリストにインデックスを付けていることです。will が返す値MainFocallengthList[0]自体はList<float>. 次に、そのリストにインデックスを付けて、実際に int にキャストできる値を取得する必要があります。

ターゲット リストとそのリスト内のターゲット フロートの両方が、それぞれのコンテナーの最初のインデックスにあると仮定します。

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

最初のインデックスは、FocalLengthListに追加した を返しますMainFocalLengthListnewFocalLength2 番目のインデックスは、に追加した値を返しますFocalLengthList。クリア?:)

于 2012-04-09T20:37:15.563 に答える
1

これを試してみてください:

var floatList = new List<float>();

var intList = floatList.Select(f => (int)Math.Ceiling(f)).ToList();
于 2012-04-09T20:43:27.347 に答える
1

MainFocalLengthListのリストであるためList<float>

var intarr = Array.ConvertAll(MainFocalLengthList[0].ToArray(), f=>(int)f);
于 2012-04-09T20:43:33.923 に答える
1

私はおそらく次のようにします:

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

ただし、 m番目のn番目のアイテムを実際の値に置き換えたいと思うでしょう。 FocalLengthList

于 2012-04-09T20:34:26.197 に答える
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])
于 2012-04-09T20:34:37.880 に答える