gpt4 book ai didi

c# - 避免 SingleOrDefault 空引用异常

转载 作者:太空狗 更新时间:2023-10-30 00:19:34 25 4
gpt4 key购买 nike

我正在添加参数以将信息插入数据库并遇到潜在的空引用异常。通过使用 SingleOrDefault LINQ 表达式,我认为如果实例没有名为“Name”的 Tag,则 Tag 将默认为空值。只要实例具有某种标签,情况就是如此。如果实例根本没有标签,则会发生空引用异常。这种情况很少见,但我仍然需要更好的方法来处理它。有没有比捕获异常更好的方法来解决这个问题?

cmd.Parameters.AddWithValue("@Name", runningInstance.Tag.SingleOrDefault(t => t.Key == "Name").Value);

最佳答案

唯一的好方法是稍微重构一下您的查询:

instance.Tag.Where(t => t.Key == "Name").Select(T => T.Value).SingleOrDefault();

这样就可以了。


更新:

我怀疑你的Tag属性类型为 IDictionary<,> .在这种情况下,检索值的最佳选择是:

if (instance.Tag.TryGetValue("Name", out TValue value))
{
// We have the value in the value. :)
}
else
{
// We don't.
}

关于c# - 避免 SingleOrDefault 空引用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18857103/

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