List<byte[]> data = new List<string>(File.ReadAllLines(Filename)).ConvertAll<byte[]>(delegate(string value)
{
return new List<string>(value.Split('.')).ConvertAll<byte>(delegate(string byteVal)
{
return Convert.ToByte(byteVal);
}).ToArray();
});
-2
A
回答
2
扩展方法往往比同等LINQ更简洁:
File.ReadAllLines(Filename).Select(
line => line.Split('.').Select(ch => Convert.ToByte(ch)).ToArray()
).ToArray();
在LINQ,这将是:
(from line in File.ReadAllLines(Filename)
select (
from ch in line.Split('.')
select Convert.ToByte(ch)
).ToArray()
).ToArray()
我没有VS在我面前,所以我希望这不会太离谱。当然两个版本都需要VS9(2008)。
1
嗯,我通常会消耗输入线路在同一时间(以允许处理大文件):
static IEnumerable<string> ReadLines(string path) {
using (var file = File.OpenText(path)) {
string line;
while ((line = file.ReadLine()) != null) {
yield return line;
}
}
}
,然后使用:
var qry = from line in ReadLines(Filename)
select Array.ConvertAll<string,byte>(line.Split('.'), Convert.ToByte);
如果需要一个列表(而不是一个序列);
var list = qry.ToList();
相关问题
- 1. 更好的方式来做到这一点(使用LINQ)?
- 2. 更好的方法来做到这一点(可能使用array_map)
- 3. 如何使用linq做到这一点?
- 4. 厂功能 - 如何做到这一点的更好的方式
- 5. 我能做到这一点与动态LINQ或是否有更好的方式 - LINQ中,C#,VS2008
- 6. 请告诉我有更好的方法来做到这一点?
- 7. 我可以使用LINQ来做到这一点吗?
- 8. 我如何使用linq来做到这一点?
- 9. 我怎样才能做到这一点propertycall以更好的方式?
- 10. 我怎么能做到这一点
- 11. 如何做到这一点的LINQ
- 12. Swift - 我怎样才能使用uicollectionview来做到这一点?
- 13. 灵活的功能参数,如何用良好的做法做到这一点?
- 14. 有没有更好的方式来做到这一点链接
- 15. 更好的方式来做到这一点XML
- 16. 有没有更好的办法做到这一点
- 17. 更好的方法来做到这一点..?
- 18. 更好的方法来做到这一点?
- 19. 有没有更好的方式在node.js中做到这一点?
- 20. 有没有更好的方法来做到这一点?
- 21. 更好的方法来做到这一点,如果语句
- 22. 有没有更好的方法来做到这一点?
- 23. 有没有更好的方法来做到这一点?
- 24. 更好的方法来做到这一点?
- 25. 必须有更好的方法来做到这一点
- 26. .NET 4.0中有更好的方法来做到这一点吗?
- 27. 有没有更好的方法来做到这一点在PHP
- 28. 更好的方法来做到这一点?
- 29. 如何使用LINQ查询来做到这一点?
- 30. 我怎样才能用一个segue来做到这一点?
更好?更快?大?更具可读性? – Kobi 2009-12-20 11:57:16
你应该用当前的代码来描述你的问题,而不是只是粘贴你的代码,希望有人会花时间理解它,并猜测你想要什么。 – 2009-12-20 12:04:51
Kobi:您忘记了更强,更难(请参阅http://www.dothedaft.com/idaft/) – tobsen 2009-12-20 19:24:10