Genereric.List to a Dictionary/List



我有一个接收FormCollection的方法。我需要把它的列表传递给我的应用层

我正在做什么和工作:

var formIndexes = form.AllKeys.Select((e, i) => new { Name = e, Index = i }).Where(o => o.Name.Contains("StatusId")).ToList();
var formValues = formIndexes.Select(e => new { Value = form[e.Index], Name = e.Name }).ToList();

但formValues是Generic.List,我需要转换为List或Dictionary。

错误:无法从"System.Collections.Generic.List<"转换<匿名类型:字符串值,字符串名称>gt;'到'System.Collections.Generic.Dictionary<字符串,字符串>'

[已解决]

正如@DanielA.White所说,我解决了做的问题

formIndexes.Select(e => new { Value = form[e.Index], Name = e.Name }).ToDictionary(a => a.Name, b => b.Value);

根据错误文本,最终结果应该是字典,而不是列表。测试这个

var formValues = formIndexes.ToDictionary(x => x.Index, x => x.Name);

FormcCollection,如果检查源,则已经设置了访问者。因此,它可以作为字典访问,而无需转换:

[HttpPost] 
public ActionResult Submit(FormCollection fc)
{
ViewBag.Id = fc["Id"];
ViewBag.Name = fc["Name"];
bool chk = Convert.ToBoolean(fc["Addon"].Split(',')[0]);
ViewBag.Addon = chk;
return View("Index");
}

点击此处查看的进一步解释

最新更新