gpt4 book ai didi

来自 FormCollection 的 C# LINQ 查询/投影

转载 作者:太空宇宙 更新时间:2023-11-03 21:00:30 24 4
gpt4 key购买 nike

我有一个无法使用 MVC 绑定(bind)的动态表单。当我将这个 FormCollection 发布到我的 Controller 时,经过简化,我在表单集合中有以下数据:

public ActionResult Foo(FormCollection coll)
...
coll["Data0Key"] contains "category"
coll["Data0Value"] contains "123"
coll["Data1Key"] contains "location"
coll["Data1Value"] contains "21"
coll["Data7Key"] contains "area"
coll["Data7Value"] contains "test"
coll["SomethingElse"] contains "irrelevent"

.. 我有未知数量的这些,想从集合中的单独键和值对象创建键值对

我一直在尝试:

    var settings = coll.AllKeys
.Where(k => k.StartsWith("Data"))
.ToDictionary(k => k, k => coll[k]);

这给了我一个字典:

Data0Key, category
Data0Value, 123
Data1Key, location
Data1Value, 21
Data7Key, area
Data7Value, test

我真正想要的是一组结构如下的键值对;

 category, 123
location, 21
area, test

我正在努力实现的目标是否完全可行,或者我是否需要寻找不同的方法?

最佳答案

我认为您只想迭代“DataxKey”部分,然后查找值。像这样的东西:

.Where(k => k.StartsWith("Data") && k.EndsWith("Key"))
.ToDictionary(k => coll[k], k => coll[k.Replace("Key", "Value")]);

这假设每个“Data0Key”也有一个“Data0Value”匹配对,否则它将取消引用 coll 中不存在的键。

关于来自 FormCollection 的 C# LINQ 查询/投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45982557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com