在。net 4.0中,有时我有一个Guid[]或200个项目都需要转换为字符串[],有时我不得不做相反的操作。
最快/最聪明的方法是什么?谢谢。
在这种情况下,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));