检查列表内部对象的最佳方法为空
best way to check internal objects of list are null
我正在根据来自输入的列表以及如下所示的字符串形成一个对象。
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,它为空,
在这种情况下,我得到了上述代码的空引用异常,任何人都可以帮助解决如何避免该空异常的问题。非常感谢。
您可以在 select 之前执行 where 查询。
LibrarySourceRowInputs = libraries?.Where(l => l != null)
.Select(l => l => new LibrarySourceRowInput()
{
LibrarySourceId = l.Id,
SourceOfDataId = l.SourceOfData.Id
}).ToList() ?? new();
我正在根据来自输入的列表以及如下所示的字符串形成一个对象。
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,它为空,
在这种情况下,我得到了上述代码的空引用异常,任何人都可以帮助解决如何避免该空异常的问题。非常感谢。
您可以在 select 之前执行 where 查询。
LibrarySourceRowInputs = libraries?.Where(l => l != null)
.Select(l => l => new LibrarySourceRowInput()
{
LibrarySourceId = l.Id,
SourceOfDataId = l.SourceOfData.Id
}).ToList() ?? new();