1
我是新開發人員,這是我的第一個問題,請原諒我解釋中的任何誤解。使用循環將csv文件中的數據添加到列表中
我想從csv文件中導入數據到我定義的對象列表中。 我的文件有2列和5行:1日期和1日銷售量。 我的應用程序讀取文件,將數據存儲在2個列表中(1表示日期listDate,1表示銷售量listVolume),然後將兩個數據組合到一個新對象mySale中,並將該對象添加到最終列表Car中。 只要將mySale逐行添加到Car(下面的代碼中的選項1),但試圖使用循環(for語句)時,它就可以正常工作,但最終我的最終列表將填入最後一行該文件(下面代碼中的選項2)。 調試過程中,我可以看到性能的約會體積是正確的mySale其添加到前車,但一旦循環結束,似乎結果已經改變:-s 我有以下代碼:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace dataManip
{
class Program
{
static void Main(string[] args)
{
var reader = new StreamReader(File.OpenRead(@"C:\sales.csv"));
List<DateTime> listDate = new List<DateTime>();
List<int> listVolume = new List<int>();
List<mySales> Car = new List<mySales>();
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
listDate.Add(Convert.ToDateTime(values[0]));
listVolume.Add(Convert.ToInt32(values[1]));
}
mySales mySale = new mySales();
//OPTION 1
mySale.date = listDate[3];
mySale.volume = listVolume[3];
Car.Add(mySale);
//OPTION 2
for (int i = 0; i < listDate.Count(); i++)
{
mySale.date = listDate[i];
mySale.volume = listVolume[i];
Car.Add(mySale);
}
foreach (int p in listVolume)
Console.WriteLine(p);
Console.WriteLine("\n"+Car[0].volume);
Console.ReadLine();
}
}
class mySales
{
public DateTime date { get; set; }
public int volume { get; set; }
}
}
Awsome!當mySale在循環內聲明時,它工作得很好。也非常感謝詳細的解釋。 – Guil75
@ Guil75這就是我在這裏:)。如果你喜歡我的回答,你會考慮將其標記爲正確嗎? – Jashaszun