- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 NameValueCollection
变量 queryDict
。
有些键没有值。但是我想遍历所有键,即使它们没有关联的值。
使用这个,如果值为空,我得到 null 而不是键名:
foreach (var parameter in queryDict)
{
key = (string)parameter;
}
AllKeys
产生所有结果。
但是我也得到了 null
。查看 queryDict
的内容,我可以通过字符串看到值在那里...
那么如何在不需要创建算法的情况下访问所有键名?
添加:
鼠标悬停时queryDict的内容如下:
{AQB=1&ndh=1&cid.&oxygenid}
CID。循环中没有发现 oxygenid
我是这样填的:
string queryString = "AQB=1&ndh=1&cid.&oxygenid";
NameValueCollection queryDict = System.Web.HttpUtility.ParseQueryString(queryString);
最佳答案
NameValueCollection 允许您使用相同的键添加多个值,但是如果您添加一个具有空值的键,然后再次读取具有非空值的相同键,则第一个值(空值)是没有更多可用的
让我们测试一些场景:
NameValueCollection coll = new NameValueCollection();
coll.Add("This", "Test");
coll.Add("That", "A value");
coll.Add("This", "Not a null");
foreach (string p in coll.AllKeys)
{
Console.WriteLine("Key=" + p + ", Value=[" + (coll[p] ?? "null") + "]");
}
我们得到,作为输出,
Key=This, Value=[Test,Not a null]
Key=That, Value=[A value]
因此该对象已将两个添加的值合并到一个条目中,用逗号分隔两个值。现在让我们试试
coll.Add("This", null);
coll.Add("That", "A value");
coll.Add("This", "Not a null");
输出是
Key=This, Value=[Not a null]
Key=That, Value=[A value]
没有第一次添加的痕迹。为什么会这样?很简单,因为合并值的Add方法的内部逻辑无法区分null的初始值和第一次add添加的null。所以它只是将空值替换为“非空”字符串。
确实在评论最后添加
coll.Add("This", null);
coll.Add("That", "A value");
// coll.Add("This", "Not a null");
我们得到
Key=This, Value=[null]
Key=That, Value=[A value]
关于c# - 没有值的 NameValueCollection 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46716416/
在我尝试用内部 NameValueCollection 初始化 NameValueCollection 后,c# 编译器说必须是 NameValueCollection(string,string)。
有没有办法从 NameValueCollection 中提取与特定模式/命名约定相关的键,而不必遍历集合中的每个值? 最佳答案 名称值集合的设计并不是特别有效地进行这样的搜索。无论您使用哪种方法,它都
我必须将通用对象转换为 NameValueCollection。我正在尝试使用反射。虽然我可以获得父属性,但我无法获取作为对象的父属性的属性。 Class One public string name
有人可以阐明我的 NameValueCollection 返回 Length 属性而不是 Name 和 Value 可以告诉我我在这里做错了什么。我无法为下拉列表设置 DataTextField 或
如何将动态转换为 NameValueCollection? 我尝试将它转换为字典,然后转换为 NameValueCollection,但它会针对不同类型抛出异常。 [...] NameValueC
我读过 NameValueCollection 允许添加重复的键,但是当我尝试使用它时,情况似乎并非如此。 我的代码 using (var wb = new WebClient()) { v
我有两个 NameValueCollection: NameValueCollection customTag = (NameValueCollection)System.Configuration.
假设我有一个匿名类实例 var foo = new { A = 1, B = 2}; 有没有快速生成 NameValueCollection 的方法?我想在事先不知道匿名类型的属性的情况下获得与下面的
我有一个 NameValueCollection,我想遍历这些值。目前,我正在这样做,但似乎应该有一种更简洁的方法来做到这一点: NameValueCollection nvc = new NameV
在 automapper 中,如何将名称值集合映射到强类型集合? Mapper.Map>(); public class MetaModel { public string Name;
例如,如果我们有 {"Parameters":["name" : "test"]}它将被序列化为 {"Parameters":["name"]} . (使用 System.Text.Json) 这是为
有没有办法使 NameValueCollection 或派生类可序列化? 最佳答案 NameObjectCollectionBase ( NameValueCollection 的基类)已经实现了 I
有谁知道断言 NameValueCollection 是否等效的好方法?目前我正在使用 NUnit,但 CollectionAssert.AreEquivalent() 似乎只声明键。不是键和值。 我
我有枚举, public enum ClearAttributes { S_DURATION, S_TYPE } 我正在使用枚举中的描述将项目添加到 NameValueCollecti
NameValueCollection x = new NameValueCollection(Request.QueryString); string x1 = x.ToString(); Name
我有一个 NameValueCollection 变量 queryDict。 有些键没有值。但是我想遍历所有键,即使它们没有关联的值。 使用这个,如果值为空,我得到 null 而不是键名: forea
如果不是,确定两个 NameValueCollections 对象是否相等的最佳方法是什么。 我用它来确定解析到名称值集合中的两个查询字符串是否具有相同的键和值,而不管顺序如何。 最佳答案 Equal
我有一种情况,我不能使用字典来收集字符串的名称值。我的名称值对包含重复键,因为我需要支持遗留系统。所以请不要让我停止支持重复键。我尝试使用 NameValueCollection 但这不能与 Data
在我的 web.config 中,我将配置部分分解为单独的文件: 然后我使用 ConfigurationManager 检索设置: NameValueCollection appSettings
在 .NET(反)序列化的幕后发生了什么,使它的行为方式与它在以下场景中的行为方式相同? (这是一个测试应用程序,仅用于说明我的设置。) 我有一个带有 NameValueCollection 属性的类
我是一名优秀的程序员,十分优秀!