我正在尝试从列表中的列表中删除null。
例如:
responses.Questions[0].Options[0].Value = "asdf";
responses.Questions[0].Options[1].Value = null;
responses.Questions[0].Options[2].Value = 1;
我想删除列表中的第二个选项,因为该值为null。所以当我完成后,我有一个这样的列表:
responses.Questions[0].Options[0].Value = "asdf";
responses.Questions[0].Options[1].Value = 1;
我尝试了下面的代码,但似乎不起作用:
responses.Questions.Select(q => q.Options.RemoveAll(o => o.Value == null));
答案 0 :(得分:2)
使用foreach
:
foreach(var q in responses.Questions)
{
q.Options.RemoveAll(o => o.Value == null);
}
答案 1 :(得分:2)
试试这个
responses.Questions.ForEach(q => q.Options.RemoveAll(o => o.Value == null));
答案 2 :(得分:1)
使用Where
子句排除null
选项列表:
responses.Questions
.Where(q => q.Options != null)
.ForEach(q => q.Options.RemoveAll(o => o.Value == null));
(根据您之前删除的一条评论,由于Options
为null
,您会收到例外情况。)
注意:null
值可以在此处显示在不同级别。 responses
,Questions
,q
和Options
理论上可以都是null
。适当时添加测试。