有没有更好的方法使用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;
}
我看了看:
guids.Cast<Guid>().ToList()
但这似乎不是诀窍。
任何提示赞赏。
答案 0 :(得分:6)
guids.Select(x => new Guid(x)).ToList()
答案 1 :(得分:5)
guids.Cast<Guid>().ToList()
只是尝试将列表的每个元素强制转换为Guid
。由于您无法直接将字符串转换为Guid
,因此会失败。
但是,从字符串构造Guid很容易,您可以使用选择器为列表中的每个元素执行此操作:
var guidsAsGuid = guids.Select(x => new Guid(x)).ToList()
答案 2 :(得分:1)
你可以使用.Select来实现正确的演员:
var guids = from stringGuid in dataSource
select new Guid(stringGuid)
或
IList<string> guidsAsString = ...
var guids = guidsAsString.Select(g=>new Guid(g));