C# 如何从动态数组导入

C# 如何从动态数组导入,c#,dynamic,import,C#,Dynamic,Import,我的程序必须在地图上放置对象,我必须从文本文件中获取对象的信息,但我的问题是对象没有限制,所以当我编写代码时,我不知道是否有人想要放置1个、10个或5个对象。每个对象都有一条单独的线,您可以在其中给出参数,例如要放置的地图上的x、y坐标等。 我想,我会要求用户在对象前写一行他想添加的对象数。以下是我的示例: txt文件: 200首先,你的解决方案是有效的。 如果不想让用户指定对象的数量,可以使用列表而不是数组,并在对象列表的末尾使用分隔符。例如: List<Targets>

我的程序必须在地图上放置对象,我必须从文本文件中获取对象的信息,但我的问题是对象没有限制,所以当我编写代码时,我不知道是否有人想要放置1个、10个或5个对象。每个对象都有一条单独的线,您可以在其中给出参数,例如要放置的地图上的x、y坐标等。 我想,我会要求用户在对象前写一行他想添加的对象数。以下是我的示例:

txt文件:


200首先,你的解决方案是有效的。 如果不想让用户指定对象的数量,可以使用列表而不是数组,并在对象列表的末尾使用分隔符。例如:

      List<Targets> TargetsGet = new List<Target>();
        int j = 0;
        while(data[j]!="separator")
        {
            targets.Add(new Target(int.Parse(data[j].Split(',')[0]), int.Parse(data[j].Split('/')[0].Split(',')[1]), new Coordinate(int.Parse(data[j].Split('/')[1].Split('-')[0]),int.Parse( data[j].Split('-')[1])));
            j++;
        }

        return TargetsGet.ToArray();
    }
应修改文件,使字符串分隔符位于对象列表之后,例如:
200如果文件格式定义良好,即记录大小为X或记录之间用换行符分隔,则您很容易知道有多少记录读取所有数据并计数,然后进行转换。但即便如此,在数据读取上使用foreach也是最有效的方法。
      List<Targets> TargetsGet = new List<Target>();
        int j = 0;
        while(data[j]!="separator")
        {
            targets.Add(new Target(int.Parse(data[j].Split(',')[0]), int.Parse(data[j].Split('/')[0].Split(',')[1]), new Coordinate(int.Parse(data[j].Split('/')[1].Split('-')[0]),int.Parse( data[j].Split('-')[1])));
            j++;
        }

        return TargetsGet.ToArray();
    }