【发布时间】:2020-09-27 03:45:06
【问题描述】:
我需要能够返回代码的最后一行 fleetVehicles.insertVehicle(vehicles[i]) 但是,我不能这样做,因为它嵌套在所有其他循环中......但是我知道代码不是最好的,它按我的需要工作。有没有办法得到这个值,还是我需要重新排列所有的循环?我真的被困住了,任何答案都会有所帮助。代码如下。
谢谢你
void setUpVehicles(out Fleets fleetVehicles)
{
using (StreamReader stream = new StreamReader(@"..\..\..\Data\data.csv"))
{
while (!stream.EndOfStream)
{
string lines = stream.ReadLine();
string[] column = lines.Split(new char[] { ',' });
string firstcolumn = (column[0]);
string secondcolumn = (column[1]);
var rentals_cost = File.ReadLines(@"..\..\..\Data\data2.csv");
foreach (var line in rentals_cost)
{
if (linee.Split(',')[0].Equals(firstcolumn))
{
string[] vehicles = File.ReadAllLines(@"..\..\..\Data\data1.csv").Where(line => !line.StartsWith(rego)).ToArray();
fleetVehicles = new Fleets();
for (int i = 0; i < vehicles.Length; i++)
{
fleetVehicles.insertVehicle(vehicles[i]);
}
}
}
}
}
}
【问题讨论】:
-
在循环外声明变量?
-
为什么要创建
new Fleets();,但在下一次foreach 迭代开始之前不将其持久化? -
不是最好的方法是轻描淡写的。 Imo,您应该只阅读一次文件。对于 Data.csv 的每一行,您都读取了所有 Data1,然后读取了所有 Data2。那没有意义。您应该显示这些文件中的示例数据,并用很少的句子阐明它们之间的链接。我还将提倡使用第 3 方库来读取 CSV 并将其投影到自定义对象列表中,这样可以真正简化映射和连接。
标签: c# loops csv while-loop