将字符串集合转换为 GUID 集合

Convert a Collection of Strings into Collection of GUID

我正在阅读来自 excelcollection of strings (of GUID format),并希望将它们作为 collection of GUIDs 存储在数据库中。我只是想知道是否有任何干净的方法可以使用 LinqList<string> 转换为 List<Guid>。我对循环不感兴趣。

是的

IEnumerable<Guid> guids = guidStrings.Select(x => Guid.Parse(x));

或者正如 juharr 在他们下面的评论中所说,您可以将其简化为 "method group":

IEnumerable<Guid> guids = guidStrings.Select(Guid.Parse);

因为 C# 可以计算出传入的唯一参数与 Guid.Parse() 所需的唯一参数相同,所以编译器会为您完成。

最简单的方法是利用 Enumerable.Select() 方法,该方法可以将每个单独的字符串映射到相应的 Guid :

// This will parse each string present in your strings collection to its cooresponding guid
var guids = strings.Select(Guid.Parse);

这是如何完成的:

IEnumerable<string> guidStrings = ..... // GUID-compatible strigns
List<Guid> guids = guidStrings.Select(s => new Guid(s)).ToList();

任一 LINQ:

List<Guid> guids = guidStrings.Select(Guid.Parse).ToList();

List.ConvertAll 效率更高一点,因为它知道大小:

List<Guid> guids = guidStrings.ConvertAll(Guid.Parse);