繁体   English   中英

将文本文件中的值添加到2D数组c#

[英]Adding values from text file to 2D Array c#

编辑---我在foreach循环中将值添加到2D数组时遇到麻烦。 Hari指出,我需要在循环之前声明i = 0和数组,并且将值的分配向后分配。 (谢谢)。 但是,我试图添加一个最终的强度数组并在Debug.Log中记录i的值,并且控制台将读取“ System.Single []”,而不是单个值。 知道为什么会这样吗? 谢谢!!

这是我的代码:

using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;

//[Serializable]
public class MultiArrayList2 : MonoBehaviour {

public TextAsset datafile;
private int i;
private float[,] coordinates;
private float[] intensity;

// Use this for initialization
void Start() {

    string[] dataLines = datafile.text.Split ('\n');
    string[] lineValues;
    //print (dataLines.Length);
    i=0;

    float[,] coordinates = new float[6853, 3];  
    float[] intensity = new float[6853];
    foreach (string line in dataLines) {

        lineValues = line.Split (' ');
        float coordinateX = float.Parse (lineValues [0]);
        float coordinateY = float.Parse (lineValues [1]);
        float coordinateZ = float.Parse (lineValues [2]);
        float intens = float.Parse (lineValues [3]);

        coordinates [i, 0] = coordinateX;
        coordinates [i, 1] = coordinateY;
        coordinates [i, 2] = coordinateZ;

        intensity [i] = intens;

        Debug.Log (intensity);

        i++;        

    }

}

}

您没有为数组元素分配任何内容,首先要使数组的元素不包含任何值,然后才将它们分配给coordinateX否则应该相反,

 coordinates [i, 0] = coordinateX;

几点。

  1. 您尚未初始化i ,请在循环之前初始化此变量( foreach
  2. coordinates初始化移到下一行。
  3. 您必须取消注释行(这是您的需要)。
  4. Debug.Log总是寻找第一个坐标,我相信您想为每个坐标将其更改为i

尝试这个。

i=0;
int[,] coordinates = new int[6853, 3];  

foreach (string line in dataLines) {

    lineValues = line.Split (' ');
    int coordinateX = int.Parse (lineValues [0]);
    int coordinateY = int.Parse (lineValues [1]);
    int coordinateZ = int.Parse (lineValues [2]);
    float intensity = float.Parse (lineValues [3]);

    coordinates [i, 0] = coordinateX;
    coordinates [i, 1] = coordinateY;
    coordinates [i, 2] = coordinateZ;

    Debug.Log(coordinates [i, 0]);
    i++;        
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM