非空列表对象的计数是否总是大于 0?
Is the Count of a not null List object always greater than 0?
在 C# 中,如果 List()
对象不为空,是否也意味着 Count
将始终大于 0?
例如,如果你有一个类型为List<int>
的对象intList
,下面的代码是否多余?
if (intList != null && intList.Count > 0) {
// do something
}
不,有一个空列表是完全有效的:
List<int> intList = new List<int>();
bool isEmpty = intList.Count == 0; // true
如果您想知道列表是否不为空并且至少包含一项,您还可以使用新的 C#6 null conditional operator:
List<int> intList = null;
bool isNotEmpty = intList?.Count > 0; // no exception, false
不,该代码并不多余。 intList
可以为空或 intList.Count == 0
。以下是一些案例:
List<int> intList = null;
Console.WriteLine(intList); // it will print 'null'
intList = new List<int>();
Console.WriteLine(intList.Count); // it will print '0'
在现代 C# 中,您可以使用 Null-conditional operator 来简化检查。这种语法在性能上等同于 null
的测试,它只是简化这种常见检查的语法糖。
if (intList?.Count > 0) {
// do something
}
以上所有答案都是自我解释的。
尝试添加更多
if (intList != null && intList.Count > 0)
这里检查计数以确保在对列表执行任何操作之前 intList 中至少有一个项目。
除了 null 检查之外,我们检查计数的最常见用例是当我们想要遍历列表的项目时。
if (intList != null && intList.Count > 0)
{
foreach(var item in intList)
{
//Do something with item.
}
}
如果列表为空,则尝试遍历它是没有意义的。
但是如果 intList 不为空,这并不意味着它的计数 > 0。如果计数必须大于零,则需要将项目添加到列表中。
在 C# 中,如果 List()
对象不为空,是否也意味着 Count
将始终大于 0?
例如,如果你有一个类型为List<int>
的对象intList
,下面的代码是否多余?
if (intList != null && intList.Count > 0) {
// do something
}
不,有一个空列表是完全有效的:
List<int> intList = new List<int>();
bool isEmpty = intList.Count == 0; // true
如果您想知道列表是否不为空并且至少包含一项,您还可以使用新的 C#6 null conditional operator:
List<int> intList = null;
bool isNotEmpty = intList?.Count > 0; // no exception, false
不,该代码并不多余。 intList
可以为空或 intList.Count == 0
。以下是一些案例:
List<int> intList = null;
Console.WriteLine(intList); // it will print 'null'
intList = new List<int>();
Console.WriteLine(intList.Count); // it will print '0'
在现代 C# 中,您可以使用 Null-conditional operator 来简化检查。这种语法在性能上等同于 null
的测试,它只是简化这种常见检查的语法糖。
if (intList?.Count > 0) {
// do something
}
以上所有答案都是自我解释的。 尝试添加更多
if (intList != null && intList.Count > 0) 这里检查计数以确保在对列表执行任何操作之前 intList 中至少有一个项目。 除了 null 检查之外,我们检查计数的最常见用例是当我们想要遍历列表的项目时。
if (intList != null && intList.Count > 0)
{
foreach(var item in intList)
{
//Do something with item.
}
}
如果列表为空,则尝试遍历它是没有意义的。
但是如果 intList 不为空,这并不意味着它的计数 > 0。如果计数必须大于零,则需要将项目添加到列表中。