【发布时间】:2020-12-13 00:14:19
【问题描述】:
我有一个问题,我从外部 api 接收对象,并在我的系统中反序列化为 c# 对象。这些对象记录在我的系统上,因此我需要能够清理它们。
我可以处理的对象结构的一个很好的例子可能是这个:
var person = new {
Name = "Filip",
friends = new string[] { "Lorem ipsum @exampel.com för s",
"Ange mailasasa", "Ange mailadress på
formen namn@exampel.com för s",
"Some random text",
"Ange mailadress på formen" },
innerObj = new { s = new List<string>() {
"nge mailadress på formen na.com för s",
"Ange mailadress på formen amn@exampel.com för sökande: 920294-1801",
"Ange mailadress på formen namn@exampel.com fö"},
anotherField = "nldsa",
},
Age = 24
};
具体来说,我需要检测子字符串“920294-1801”,这个问题的正则表达式部分不是我想问的。
我想知道查看对象的最佳方法,查看所有字符串类型的字段,以及嵌套在其他数据结构中的字段。在此处的示例中,我需要查看“InnerObj”,然后查看该列表中的列表元素。
那么有什么方法可以接收对象内的所有嵌套字符串字段并遍历它们?
编辑: 我可能应该澄清一下,我需要一种适用于不同内部结构对象的方法。这意味着它不应该只工作这个示例对象,而是许多不同结构的不同通用对象
编辑: 有人建议这个问题之前已经被问过,但它没有,因为没有其他问题正在寻找一种通用方法来从不同结构的对象中获取所有字段(+嵌套字段)
【问题讨论】:
-
您这样做是为了替换字符串的所有实例吗?
-
不,这个问题不涉及获取嵌套值
-
取决于你的意思 tymfam,我可以在对象的任何地方找到的任何连续 10 次出现都应该被替换。但这不是问题所在,我只想遍历所有字段,包括嵌套字段