让我们假设简单数据:
Dictionary<string, object> dict = new Dictionary<string, object>();
dict.Add("obj 1", null);
dict.Add("obj 2", new object());
dict.Add("obj 3", new object());
dict.Add("obj 4", null);
Dictionary<string, object> dict2 = new Dictionary<string, object>();
dict2.Add("obj 1", null);
dict2.Add("obj 2", new object());
dict2.Add("obj 3", null);
dict2.Add("obj 4", null);
Dictionary<string, object> dict3 = new Dictionary<string, object>();
dict3.Add("obj 1", null);
dict3.Add("obj 2", null);
dict3.Add("obj 3", new object());
dict3.Add("obj 4", null);
List<Dictionary<string, object>> list = new List<Dictionary<string, object>> {dict, dict2, dict3};
是否可以选择行并删除所有列中的键/值为空的键/值?所以在我的列表中这之后将是:
dict({"obj 2", object}, {"obj 3", object})
dict2({"obj 2", object}, {"obj 3", null})
dict2({"obj 2", null}, {"obj 3", object})
答案 0 :(得分:1)
试试这个:
list.ForEach(x =>
{
x.Where(y => y.Value == null).ToList().ForEach(z=>
{
if(list.All(l=>!l.ContainsKey(z.Key)|| l[z.Key]==null))
x.Remove(z.Key);
});
});