从字典中删除空项

时间:2012-02-02 11:44:47

标签: c# asp.net

我有一个查询数据库的网页,并将结果存储在映射的数组字典类型中。我遇到的问题是结果中的某些“行”为空,因此我可能会返回20条记录,前三条可能为空

所以我将浏览每个单独的数组并检查它是否为null,所以我的问题是如何从数组中删除它。

如果我做的话

Objects[i].Remove(Objects[i].Keys.ToString());

我收到错误,因为Objects [i]为空

2 个答案:

答案 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]
    }
}