Sto*_*tip 0 c# linq getter list
我有一个名为Division的类,它包含有关Subdivisions(在内部List中)的信息,包括每个细分的分类代码.在Subdivision类中,代码存储为int.在Division类中,List用于存储所有代码.有时会有一个没有细分的部门,因此没有代码.或者,无论出于何种原因,可能没有为细分设置代码.因此它的默认值为0.我不想返回列表,除非它有实际代码.
public List<int> AllCodesList
{
get
{
return (from subdivision in SubdivisionInfoList
where subdivision.code > 0
select subdivision.code).ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
如果您想要它返回null,请执行以下操作:
public List<int> AllCodesList
{
get
{
List<int> subDivisions = null;
if (SubdivisionInfoList.Any(s => s.code > 0))
{
subDivisions = (from subdivision in SubdivisionInfoList
where subdivision.code > 0
select subdivision.code).ToList();
}
return subDivisions;
}
}
Run Code Online (Sandbox Code Playgroud)
也就是说,我个人不是这个的粉丝,我宁愿返回一个空列表.在对列表执行任何操作(如果有任何返回)之前调用此属性时,必须确保进行空检查.
乔治的建议:
public List<int> AllCodesList
{
get
{
var subDivisions = (from subdivision in SubdivisionInfoList
where subdivision.code > 0
select subdivision.code).ToList();
if (subDivisions.Count == 0)
{
subDivisions = null;
}
return subDivisions;
}
}
Run Code Online (Sandbox Code Playgroud)