检查列表内部对象的最佳方法为空

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();