我有一个查询数据库的网页,并将结果存储在映射的数组字典类型中。我遇到的问题是结果中的某些“行”为空,因此我可能会返回20条记录,前三条可能为空
所以我将浏览每个单独的数组并检查它是否为null,所以我的问题是如何从数组中删除它。
如果我做的话
Objects[i].Remove(Objects[i].Keys.ToString());
我收到错误,因为Objects [i]为空
答案 0 :(得分:2)
您可以使用Linq解决问题。假设您正在使用词典:
//Sample data, this dictionary is the one you get from the query to the database
Dictionary Objects= new Dictionary()
{
"key1" => "value1",
"key2" => null,
"key3" => "value3"
};
//This will contain the same data as Objects but without the null values
Dictionary Objects2 = (from kv in Objects
where kv.Value != null
select kv).ToDictionary(kv => kv.Key, kv => kv.Value);
答案 1 :(得分:0)
从后面迭代/循环收集(最后一个项目朝向第一个)。检查null,适当删除。一般构造:
for(int n = collection.length; n >= 0; n--)
{
if(collection[n] == null)
{
// delete collection[n]
}
}