问题描述
我正在根据来自输入的列表以及如下所示的字符串形成一个对象。
public static LibrarySourceTableInput CreateLibrarySourceTableInput<T>(List<T> libraries,string mechanicalLibraryName)
where T : ISourceOfData
{
return new LibrarySourceTableinput()
{
LibrarySourceRowInputs = libraries?.Select(l => new LibrarySourceRowinput()
{
LibrarySourceId = l.Id,SourceOfDataId = l.sourceOfData.Id
}).ToList() ?? new(),MappedLibrarySource = mechanicalLibraryName
};
}
我在这里面临不同的问题,我的库计数为 1,但内部对象为空,例如在下面的图像库中计数为 1 并且为空,
在这种情况下,我收到了上述代码的空引用异常,有人可以帮助解决如何避免空异常的问题。非常感谢。
解决方法
您可以在选择之前执行 where 查询。
LibrarySourceRowInputs = libraries?.Where(l => l != null)
.Select(l => l => new LibrarySourceRowInput()
{
LibrarySourceId = l.Id,SourceOfDataId = l.SourceOfData.Id
}).ToList() ?? new();