我已经尝试了很多不同的方法来做到这一点,但每次我尝试这个时它都会抛出一个空引用异常。
我正在尝试过滤字段中的值以在该字段中列出唯一值。它适用于没有缺失值的字段,但是当我在我知道有空值的字段上使用它时,它会引发异常,所以我假设这是我应该过滤的内容。
我这样做的最初方法只是循环遍历值并检查唯一值列表是否包含该值,但这需要很长时间,我想利用 Linq 的力量
List<Graphic> ReturnedGraphics = e.FeatureSet.Features as List<Graphic>;
IEnumerable<string> ValueSet = (
from g in e.FeatureSet.Features
where !uniquevalues.Contains((g.Attributes[_selectedField] == null ? "blank" : g.Attributes[_selectedField].ToString()))
select g.Attributes[_selectedField] == null ? "blank" : g.Attributes[_selectedField].ToString()
) as IEnumerable<string>;
if (ValueSet.Any())
{
uniquevalues.AddRange(ValueSet);
}
我还应该补充一点,我在列表中添加范围的原因是因为有 5000 个值来自服务器,这些值对返回的值有限制,但是它适用于此并且不应该对我尝试的内容产生影响在这里做。