これを行うためにさまざまな方法を試しましたが、これを試すたびに null 参照例外がスローされます。
フィールド内の値をフィルタリングして、そのフィールド内の一意の値のリストを取得しようとしています。欠損値のないフィールドで機能しますが、null 値があることがわかっているフィールドで使用すると例外がスローされるため、それをフィルタリングする必要があると想定しています。
私がこれを行っていた元の方法は、値をループして、一意の値のリストにまだ値が含まれているかどうかを確認することでしたが、これには長い時間がかかり、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 個の値が入っているためであることも付け加えておく必要がありますが、これは機能し、私がしようとしていることに影響を与えるべきではありませんここで行う。