gpt4 book ai didi

c# - 检查不同的空值

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:27 24 4
gpt4 key购买 nike

我已经尝试了很多不同的方法来做到这一点,但每次我尝试这个时它都会抛出一个空引用异常。

我正在尝试过滤一个字段中的值,以获得该字段中唯一值的列表。它适用于没有缺失值的字段,但是当我在我知道有空值的字段上使用它时,它会抛出异常,所以我假设这就是我应该过滤的内容。

我这样做的最初方法只是遍历值并检查唯一值列表是否包含该值,但这需要很长时间,我想利用 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 个值来自服务器,这些值对要返回的值有限制,但是它适用于此并且不应该对我想在这里做什么。

最佳答案

您不能 .ToString() 空值。看起来你可能正在尝试。 null 的候选者包括 lstbxFields.SelectedValueg.Attributes[someVal]

如何使您的代码合理化,以便更容易发现错误并且您不会到处重复自己的错误?

var selVal = lstbxFields.SelectedValue;
if(selVal == null)
{
//act on this
return; //or throw
}
var selectedValue = selVal.ToString();

var query=
e.FeatureSet.Features
.Select(feature => feature.Attributes[selectedValue])
.Select(attr => attr == null
? "blank"
: attr.ToString())
.Where(attrVal => !uniquevalues.Contains(attrVal));

关于c# - 检查不同的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11874282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com