TO DO如何將CSV中的列映射到C#中的類屬性?
要創建一個控制檯應用程序,它可以讀取一個CSV文件和經銷商確定其中三個CSV文件(在列中的數據變化)它屬於。
我已經創建了一個控制檯應用程序,它正在使用SmartXLS庫從目錄中讀取所有的csv文件。
如何將每個文件的數據讀入列表中,並具有將每個「列」數據與我的類中定義的關聯類屬性(即列名)映射的簡單機制?
文件結構1:
使用日期,產品名稱,用戶ID,用令牌
- 20160428,三星,多爾曼@ stackoverflow.com
文件結構2 :
原因,月份,調整日期,交易ID,令牌調整,產品名稱,評論添加
- 斷網,10月15日,10月31日 - 15,73820274918-230934049372,045的Xbox,大橋設計InfraWorks 360
文件結構3:
使用日期,產品名稱,產品版本,用戶ID,機器名稱,服務器名稱,使用的令牌,使用小時
- 20161027,Gamepro,2016,11597,BC318010,LA847012,6,0.1
請幫助我重寫函數。
類:
public class Token
{
public DateTime Usagedate { get; set; }
public string Product_name { get; set; }
public string Product_Version { get; set; }
public string Userid { get; set; }
public string User_name { get; set; }
public string Machine_name { get; set; }
public string Server_name { get; set; }
public string Tokens_used { get; set; }
public string Use_count { get; set; }
}
應用:
namespace ConsoleApp
{
class token
{
public List<Token> Tokens { get; set; }
public void TokenData()
{
Console.WriteLine("Begin Harvesting");
CategorizeData();//function
}
public void CategorizeData()
{
int count = 0;
Tokens = new List<Token>();
var files = Directory.EnumerateFiles(@"C:\Users\Projects", "*.csv");
foreach (string file in files)
{
SmartXLS.WorkBook WB = new WorkBook();
WB.readCSV(file);
DataTable dt = WB.ExportDataTable();
string dtSTR;
DataRow dr;
DataColumn dc;
for (int i = 1; i < dt.Rows.Count; i++)
{
dr = dt.Rows[i];
try
{
// Map Columns with the class properties
// read them to the list
dtSTR = dr[0].ToString();
if (string.IsNullOrEmpty(dtSTR)) continue;
var tkn = new Token();
tkn.Usagedate = ParseDateTime(dtSTR);
tkn.Product_name = dr[1].ToString();
tkn.Userid = dr[2].ToString();
tkn.Tokens_used = dr[3].ToString();
tkn.Reason = dr[4].ToString();
Tokens.Add(tkn);
count++;
}
catch (Exception ex)
{ }
}
}
}
}
}
爲什麼你捕捉所有異常? – luxun
@luxun。不需要擁有它嗎? – Rev4
除非你打算做一些事情來處理例外情況。 – luxun