我有以下代码行创建一个字符串列表.
List<string> tstIdss = model.Ids.Where(x => x.Contains(entityId)).Select(x => x.Split('_').First()).ToList();
Run Code Online (Sandbox Code Playgroud)
我需要将其转换为Guids列表.即List<Guid> PermissionIds.
model.PermissionIds= Array.ConvertAll(tstIdss , x => Guid.Parse(x));
Run Code Online (Sandbox Code Playgroud)
我尝试了上述方法,但得到以下错误.model.PermissionIds在我的模型类中实现如下.
public List<Guid> PermissionIds { get; set; }
Run Code Online (Sandbox Code Playgroud)
错误3
无法从用法中推断出方法'System.Array.ConvertAll(TInput [],System.Converter)'的类型参数.尝试显式指定类型参数.
Tho*_*que 28
您可以使用Linq Select和ToList方法:
model.PermissionIds = tstIdss.Select(Guid.Parse).ToList();
Run Code Online (Sandbox Code Playgroud)
或者您可以使用以下List<T>.ConvertAll方法:
model.PermissionIds = tstIdss.ConvertAll(Guid.Parse);
Run Code Online (Sandbox Code Playgroud)
小智 10
我有以下代码行创建字符串列表。我需要将其转换为指南列表。
如果您的字符串列表可以安全地解析为 Guid,我推荐 @Thomas Leveque 的答案。
如果您的字符串列表可能包含一些非 guid,那么使用 TryParse 会更安全,如下所示:
Guid bucket = Guid.Empty;
model.PermissionIds = tstIdss.Where(x => Guid.TryParse(x, out bucket)).Select(x => bucket).ToList();
Run Code Online (Sandbox Code Playgroud)
Where 子句将过滤掉任何无法格式化为 Guid 的字符串。
我不熟悉ConvertAll,但尝试使用Select:
model.PermissionIds = tstIdss.Select(s=>Guid.Parse(s)).ToList();
Run Code Online (Sandbox Code Playgroud)