我试图将代码缩短到最有效的方式来访问该类所有成员中的特定属性。
public class Title
{
public string reference { get; set; }
public string root { get; set; }
public string name { get; set; }
public string description { get; set; }
public string shortT { get; set; }
}
public class Results
{
public List<Title> pop { get; set; }
public List<Title> exact { get; set; }
public List<Title> sub { get; set; }
...
}
Results
来自JSON反序列化。它包含相同类型的成员,pop
,exact
和sub
(确切的成员数可能会有所不同)。我想过滤Results
中name
包含&#34; jackie&#34;
那么迭代成员列表(pop,exact,sub)并查看属性name
并查看它是否包含&#34; jackie&#34;的最佳/有效方式是什么? ,无需直接引用pop,exact或sub。
原因是JSON明天可以返回更多成员,例如pop
或exact
等我不知道的高级成员,所以我需要找到一种方法将它们全部合并到一个可搜索的列表中(因为它们都是相同的类型)。
因此,可以直接引用单个语句中所有成员的属性name
,如
foreach(结果* .name中的字符串n)
答案 0 :(得分:0)
您可以制作该类的列表并使用表达式访问
List<Title> asdf = new List<Title>;
asdf.where(var => var.name == "jackie").ToList().ForEach(var =>
{
//do actions with this classes var.
};
希望我帮助你;)
答案 1 :(得分:0)
如果要访问其中的内容,则必须引用所有三个属性。如果您想将所有三个内容视为一个集合,您可以Union
。
// given that r is an instance of Results
var combinedTitles = r.exact.Union(r.pop).Union(r.sub);
var matches = combinedTitles .Where(title => title.name == "title you want to match");