【问题标题】:Convert a Collection of Strings into Collection of GUID将字符串集合转换为 GUID 集合
【发布时间】:2016-07-12 14:00:11
【问题描述】:

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

【问题讨论】:

  • 无论是 Neil 展示的方式(它也在引擎盖下循环)或var list = guidStrings.ConvertAll(Guid.Parse);

标签: c# excel linq guid


【解决方案1】:

任一 LINQ:

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

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

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

【讨论】:

    【解决方案2】:

    是的

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

    或者正如 juharr 在下面的评论中所说,您可以将其简化为“方法组”:

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

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

    【讨论】:

    • 或者只是Select(Guid.Parse)
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      这样做是这样的:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-09
        • 2020-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多