List对象比Blazor WASM中的原始数据集多了一项return

List object get one more item return than the original data set in Blazor WASM

我有一个包含一个列表对象的父组件文件。

<h3>Create Movie</h3>

<MovieForm Movie="Movie" NotSelectedGenres="NotSelectedGenres" OnValidSubmit="SaveMovie"/>

@code {

    private Movie Movie = new Movie() ;

    private List<Genre> NotSelectedGenres = new List<Genre>()
                                                {
                                                    new Genre()
                                                        {
                                                            Id = 1, Name = "Action"
                                                        },
                                                    new Genre()
                                                        {
                                                            Id = 2, Name = "Comedy"
                                                        },
                                                    new Genre()
                                                        {
                                                            Id = 3, Name = "Drama"
                                                        }
                                                } ;

    private void SaveMovie()
        {
            Console.WriteLine("this works") ;
        }

}

然后我在其中插入名为 'MovieForm' 的子组件。

然后在调试模式下,当我检查 'NotSelectedGenres' 的长度时,它说总计 4。(在子组件中)

    [Parameter]
    public List<Genre> SelectedGenres { get ; set ; } = new List<Genre>() ;

比原数据集多'null'

NotSelectedGenres
   _items    BlazorMoves.Shared.Entities.Genre[](4)
     0       BlazorMoves.Shared.Entities.Genre
     1       BlazorMoves.Shared.Entities.Genre
     2       BlazorMoves.Shared.Entities.Genre
     3       null
     length  4

这是对的吗?

一旦您将第一项添加到 .NET 中的 List,它就会在内部分配一个大小为 4 的数组。分配的大小会根据需要自动增加。

Count 属性 应该 return 列表中正确的项目数,而 Capacity return 是当前分配的内部大小。

List<> docs