如何返回空列表?

How to return a null list?

提问人:NeverTrust 提问时间:1/30/2018 最后编辑:Mostafa BouzariNeverTrust 更新时间:1/31/2018 访问量:76

问:

我有一个列表,我想检查它是否为 null,然后正确处理它

public List<Entitys.Member> GetALLMembers()
{            
    List<Models.EF_Model.Member> list = new Models.CRUD.Member().Get_AllMemeberRecords();
    //this is null and it throws exception => list
    List<Entitys.Member> ListMember = new List<Entitys.Member>();
    if (list!=null)
    {
        foreach (var item in list)
        {
            ListMember.Add(new Entitys.Member()
            {
                //doing sth
            });
        }
    return ListMember;
    }
    else
    {
        return()
    }
}

我想将其初始化为某些东西或字符串,然后在我的控制器中抛出一条消息。

如何以这种方式初始化列表?

C# 列表 NullReferenceException

评论

4赞 BugFinder 1/30/2018
“sth”?什么是 STH ?
0赞 Flater 1/30/2018
@BugFinder sth = 某物
1赞 Flater 1/30/2018
(1)在询问如何做之前,先确定你想/需要做什么。(2)如果你的意思是抛出异常,那么你必须在提供默认值之前这样做(否则你就把马车放在了马前)。如果您打算记录通知(例如日志),您可以在任何时候执行此操作。但同样,在尝试构建它之前,请确定您想要什么want to initialize it to sth or a stringand then in my controller throw a message
2赞 BugFinder 1/30/2018
所以做一个新清单,但不要填写它......
1赞 Jim Rhodes 1/30/2018
总是回来.调用方可以检查它是否为空。ListMember

答:

1赞 Blake Thingstad 1/30/2018 #1

只需检查 list 是否为 null。如果是,那么你可以只返回一个空的列表,否则创建新列表。如果为 null,则无需向列表添加任何内容。该方法的重点是返回所有成员,如果列表为 null,则显然没有成员。返回除空列表甚至 null 以外的任何内容都是不正确的。

public List<Entitys.Member> GetALLMembers()
{            
    List<Models.EF_Model.Member> list = new Models.CRUD.Member().Get_AllMemeberRecords();
    if (list != null)
        return list.Select(l => new Entitys.Member()).ToList();
    else
        return new List<Entitys.Member>();
}