Linq铸造类型之间

Sam*_*l G 3 linq linq-to-objects

有没有更好的方法使用linq将这个guid字符串列表强制转换为guid:

public static IList<Guid> ToGuidList(this IList<string> guids)
    {
        IList<Guid> guidList = new List<Guid>();
        foreach(var item in guids)
        {
            guidList.Add(new Guid(item));
        }
        return guidList;
    }
Run Code Online (Sandbox Code Playgroud)

我在看:

guids.Cast<Guid>().ToList()
Run Code Online (Sandbox Code Playgroud)

但这似乎不是诀窍.

任何提示赞赏.

lep*_*pie 6

guids.Select(x => new Guid(x)).ToList()
Run Code Online (Sandbox Code Playgroud)


Joh*_*lph 5

guids.Cast<Guid>().ToList()
Run Code Online (Sandbox Code Playgroud)

只是尝试将列表的每个元素强制转换为Guid.由于无法直接将字符串转换为a Guid,因此失败.

但是,从字符串构造Guid很容易,您可以使用选择器为列表中的每个元素执行此操作:

var guidsAsGuid = guids.Select(x => new Guid(x)).ToList()
Run Code Online (Sandbox Code Playgroud)