2016-09-22 17 views
-2

我有一個字符串:「ABC,23,SEE」,相應地我有一個名爲Employee的類,它具有名稱,年齡和名稱等屬性。禁食的方式來從逗號分隔的字符串加載字段

現在,上例中的字符串按名稱,年齡和指定的順序包含值。考慮到我有一組總數爲100個元素的字符串,創建Employee類實例的最快方法是什麼。

+0

我只想對你Employee類創建一個PopulateFromCSV方法,做你的字符串分割和人羣那裏,5-8線上衣。 – FailedUnitTest

+0

是的,我只是想知道是否有更快的方式做到這一點。考慮到大量的數據(可能多達500個這樣的字符串),分割並逐個加載字段似乎是很乏味的。 – tavier

+0

如果你使用任何庫,他們會在內部做這樣的事情。爲什麼不自己寫這些線? – FailedUnitTest

回答

2

我不會打擾找到'最快'的方式。你應該找到'夠快''的方式。對於100個字符串,幾乎任何方法都可以在實際使用中足夠快地工作。最簡單的(以最快的速度實現,如果我們定義要求這樣......)將是:

var parts = dataStr.Split(new []{','}); 
var employee = new Employee(parts[0].Trim(), parts[1].Trim(), parts[2].Trim()); 
+1

不是'Trim()'比'.Replace(「」,「」)'好得多? – Quantic

+0

@Quantic,它是,因爲它不會替換單詞之間的空格=)。但單個替換會更快,消耗更少的內存。 –

0

我會使用像LinqToCSV的CSV映射庫。忘了補充一點,如果你搜索nuget.org,你會發現它們很多。

+0

你能舉個例子或者參考嗎? – tavier

+0

如果你看看http://www.codeproject.com/Articles/25133/LINQ-to-CSV-library你可以看到示例代碼。它允許你裝飾你的Employee類,然後讀入CSV文件,它將完成映射。還有其他更高性能的解決方案,都可以在nuget.org上找到。 – CodeMonkey1313