c# - 流程统一从循环中消失
问题描述
我的统一代码中有一个循环,它读取 .csv 文本文件并将内容添加到类中,然后将其添加到 List 对象中。
我遇到的问题是下面方法中的代码永远不会完成,也就是说,如果我尝试从循环内部进行调用,它永远不会到达循环底部的 debug.log 语句(我不应该在这里称之为线程)线程刚刚停止,我在控制台中没有收到错误消息。
void ReadDataFile()
{
Debug.Log(getPath() + DataFileName);
string fileData = System.IO.File.ReadAllText(getPath() + DataFileName);
string[] lines = fileData.Split("\n"[0]);
Debug.Log("linecount from csv is : " + lines.Length);
for(int n = 1;n < lines.Length; n++)
{
Debug.Log("LINE=" + lines[n]);
string[] linedata = (lines[n].Trim()).Split(',');
if (linedata[0] == null) break;
geoData data = new geoData();
data.Name = linedata[(int)enumField.NAME];
data.Lat = linedata[(int)enumField.LAT];
data.Long = linedata[(int)enumField.LONG];
data.LocType = linedata[(int)enumField.TYPEOFLOCATION];
data.Charts = linedata[(int)enumField.CHARTS];
data.Vhf_Tel = linedata[(int)enumField.VHF_TEL];
data.GroundtoAnchor = linedata[(int)enumField.GROUNDTOANCHOR];
data.Possibilities = linedata[(int)enumField.POSSIBILITIES];
data.Environment = linedata[(int)enumField.ENVIRONMENT];
data.Transportation = linedata[(int)enumField.TRANSPORTATION];
//add to list
PortData.Add(data);
Debug.Log(data.Name + " " + data.Lat + " " + data.LocType);
/*
float lat = (float)GeoAngle.FromDegrees(data.Lat);
float lng = (float)GeoAngle.FromDegrees(data.Long);
Debug.Log("Adding marker at:" + lat + " " + lng);
Vector2 markerGeo = new Vector2(lat, lng);
Debug.Log("Plot vector2 is: " + markerGeo);
OnlineMapsMarker3D current = control.AddMarker3D(markerGeo, MapMarker);
*/
}
Debug.Log("portdata saved to class is : " + PortData.Count);
}
解决方案
谢谢大家,这是一个索引超出范围的异常,奇怪的是它没有被 Unity 控制台拾取。
推荐阅读
- yaml - Python Ruamel YAML 使用别名和合并键加载注释
- sql - 与依赖数据一起删除 SQL (Access) 中的查询?
- javascript - 从 2 个数组中获取唯一数字,第一个方法有效,第二个无效,为什么?
- excel - 提高循环速度
- javascript - 在 src 更改时,即使 src 无效
- html - 退出悬停后下拉菜单消失
- kubernetes - 删除应用 Helm2.13.1 创建的所有 Pod
- r - ggplot geom_bar 按组为 0 值留下空格
- sql - 使用分析函数时的分组
- python - 捕获图像并提交给kivy python中的其他功能