2016-09-22 16 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