gpt4 book ai didi

c# - 如何使txt文件的转换更有效率?

转载 作者:行者123 更新时间:2023-12-02 22:15:12 26 4
gpt4 key购买 nike

我正在尝试读取一个 txt 文件(csv 或制表符分隔)并将每一行转换为 Vector3 并将其添加到数组中以进行进一步处理

到目前为止,我的代码可以正常工作,但读取文件需要一些时间。正在读取的每个文件在 6 mb 到 25 mb 之间

代码运行并完成了我所期望的,但它似乎在这个 foreach 语句中的某个地方遇到了瓶颈?有没有更快的方法或者是必须要有的东西?

String[] pntsText = File.ReadAllLines(args[0]);
List<Vector3> pnts = new List<Vector3>();
Console.WriteLine("Start Building Points Array ...");
int noOfPnts = pntsText.Length;
int currentPntNo=0;
Console.CursorVisible = false;

foreach (string pntText in pntsText)
{
currentPntNo++;
Console.Clear();
Console.Write(noOfPnts - currentPntNo + " left to process");
string[] splitXYZ = pntText.Split(new string[] { args[1] }, StringSplitOptions.None);
Vector3 ve2 = new Vector3(float.Parse(splitXYZ[0]), float.Parse(splitXYZ[1]), float.Parse(splitXYZ[2]));
pnts.Add(ve2);
}

Console.WriteLine("Points Array Complete");

最佳答案

我认为问题出在控制台上的通知上,您可以将它们注释掉并测试是否获得更好的性能。我建议你使用 Stopwatch为您的程序执行计时。

您还可以尝试使用以下 LINQ 查询来获取 Vector3 的列表。

List<Vector3> list

= pntsText.Select(r => new { Splitted = r.Split(new string[] { "," }, StringSplitOptions.None) })
.Select(t => new Vector3(float.Parse(t.Splitted[0]), float.Parse(t.Splitted[1]), float.Parse(t.Splitted[2])))
.ToList();

但这在内部执行循环,所以我不确定您是否从中获得了任何性能提升,而且在处理过程中您不会在控制台上获得输出。

关于c# - 如何使txt文件的转换更有效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14597802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com