.net 一般列表到字典/列表

nxowjjhe  于 2023-01-06  发布在  .NET
关注(0)|答案(2)|浏览(147)

我有一个接收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。
错误:无法从"系统.集合.泛型.列表〈〈匿名类型:字符串值,字符串名称〉〉'to'系统.集合.通用.字典〈string,string〉'

  • [已解决]*

正如@DanielA. White所说,我解决了做:

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

nukf8bse1#

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

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

d7v8vwbk2#

如果检查源,则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");
        }

查看此处以获取进一步说明

相关问题