我爱string.IsNullOrEmpty方法.我很想拥有能够为IEnumerable提供相同功能的东西.有这样的吗?也许一些收集助手班?我问的原因是,在if语句中,如果模式是代码,代码看起来很混乱(mylist != null && mylist.Any()).拥有它会更加清洁Foo.IsAny(myList).
这篇文章没有给出答案:IEnumerable是空的?.
我有一个从数据库填充的对象列表.如果列表为空,我需要显示错误消息,否则显示网格视图.
如何List<T>在C#中检查a 是否为空?
.NET库中是否有一个函数返回true或false,表示数组是null还是空?(类似于string.IsNullOrEmpty).
我在string.IsNullOrEmpty课堂上看了一下像这样的功能但看不到任何东西.
即
var a = new string[]{};
string[] b = null;
var c = new string[]{"hello"};
IsNullOrEmpty(a); //returns true
IsNullOrEmpty(b); //returns true
IsNullOrEmpty(c); //returns false
Run Code Online (Sandbox Code Playgroud) 该空传播运营商/条件接入表达在未来的C#-6.0看起来像一个非常方便的功能.但我很好奇它是否有助于解决检查子成员是否为null然后在if块内的所述子成员上调用布尔方法的问题:
public class Container<int>{
IEnumerable<int> Objects {get;set;}
}
public Container BuildContainer()
{
var c = new Container();
if (/* Some Random Condition */)
c.Objects = new List<int>{1,2,4};
}
public void Test()
{
var c = BuildContainer();
//Old way
if ( null != c && null != c.Objects && c.Objects.Any())
Console.Write("Container has items!");
//C# 6 way?
if (c?.Object?.Any())
Console.Write("Container has items!");
}
Run Code Online (Sandbox Code Playgroud)
会c?.Object?.Any()编译吗?如果传播运算符短路(我认为这是正确的术语)为null,那么你有if (null),这是无效的.
C#团队是否会解决这个问题,或者我是否错过了null传播运算符的预期用例?
我有以下代码,我的同事告诉我这是不正确的,如果我的变量为null将崩溃:
List<FSKUser> users = null;
if (users == null || users.Count() == 0)
{
return false;
}
Run Code Online (Sandbox Code Playgroud)
显然这=null只是为了测试目的.但是,当我运行此代码时,它正确运行并返回false.
我正在检查一种安全正确的检查方式吗?
c# ×5
null ×2
.net ×1
arrays ×1
c#-6.0 ×1
collections ×1
gridview ×1
ienumerable ×1
linq ×1
list ×1