在.NET 4.0中,有时我需要将Guid[]或200个项目全部转换为string[],有时我又需要反过来做。
最快/最聪明的方法是什么?
谢谢。
在这种情况下,替代LINQ的方法是Array.ConvertAll()
:
Guid[] guidArray = new Guid[100];
...
string[] stringArray = Array.ConvertAll(guidArray, x => x.ToString());
guidArray = Array.ConvertAll(stringArray, x => Guid.Parse(x));
运行时性能可能与LINQ相同,尽管它可能会略微快一点,因为它直接从数组中获取并返回,而不是先进行枚举。
如果你想使用LINQ,myList.Select(o => o.ToString())
就可以了。
否则,使用foreach
循环填充List
几乎同样简洁,并且可以在旧版本的.Net中使用。
Guid[] guids = new Guid[200];
var guidStrings = guids.Select(g => g.ToString());
var revertedGuids = guidStrings.Select(g => Guid.Parse(g));