我正在阅读collection of strings (of GUID format)
中的excel
,并希望将其作为collection of GUIDs
存储在数据库中。我只是想知道是否有任何干净的方法可以使用List<string>
将List<Guid>
转换为Linq
。我对循环不感兴趣。
答案 0 :(得分:4)
是的
IEnumerable<Guid> guids = guidStrings.Select(x => Guid.Parse(x));
正如juharr在下面的评论中所说,你可以将这一点简化为“方法组”:
IEnumerable<Guid> guids = guidStrings.Select(Guid.Parse);
因为C#可以解决传入的唯一参数与Guid.Parse()
所需的唯一参数相同,所以编译器会为你做这个。
答案 1 :(得分:3)
LINQ:
List<Guid> guids = guidStrings.Select(Guid.Parse).ToList();
或List.ConvertAll
这有点效率,因为它知道大小:
List<Guid> guids = guidStrings.ConvertAll(Guid.Parse);
答案 2 :(得分:0)
最简单的方法是利用Enumerable.Select()
方法将每个字符串映射到相应的Guid
:
// This will parse each string present in your strings collection to its cooresponding guid
var guids = strings.Select(Guid.Parse);
答案 3 :(得分:0)
这是如何完成的:
IEnumerable<string> guidStrings = ..... // GUID-compatible strigns
List<Guid> guids = guidStrings.Select(s => new Guid(s)).ToList();