相关疑难解决方法(0)

C#是否具有List/IEnumerable的IsNullOrEmpty?

我知道一般空列表比NULL更喜欢.但我将返回NULL,主要有两个原因

  1. 我必须明确检查和处理空值,避免错误和攻击.
  2. ??之后很容易执行操作以获得返回值.

对于字符串,我们有IsNullOrEmpty.有没有C#本身为List或IEnumerable做同样的事情?

c# ienumerable isnullorempty

66
推荐指数
4
解决办法
7万
查看次数

C#空传播运算符/条件访问表达式&if块

空传播运营商/条件接入表达在未来看起来像一个非常方便的功能.但我很好奇它是否有助于解决检查子成员是否为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传播运算符的预期用例?

c# null language-features c#-6.0

19
推荐指数
2
解决办法
2万
查看次数

如何检查数组是否包含任何项目或完全为空?

如果我定义一个整数数组:

int[] a = new int[13];
Run Code Online (Sandbox Code Playgroud)

并且我没有向其中插入任何项目,我如何知道数组 a 是否包含任何项目或完全为空?我是否必须迭代所有 a.Length 索引?在列表中

List<int> b = new List<int>();
Run Code Online (Sandbox Code Playgroud)

如果我检查:

if(b.Count == 0)
{
    // The list does not contain any items.
}
Run Code Online (Sandbox Code Playgroud)

有没有等效的方法来检查数组?我在互联网上发现检查数组是否为空或空。就我而言,我确信该数组不为空。我只是想知道它是否包含任何项目。我不关心数组中的哪个位置,也不关心具体是哪个项目。预先非常感谢您。

c# arrays

5
推荐指数
1
解决办法
2万
查看次数

意外-无法比较类型'System.Int32 []'的元素。仅支持原始类型,枚举类型和实体类型

任何想法在EF DbContext查询中可能出现什么问题?据我了解,这应该按照SO同伴来进行。

我试过列表,空值检查,不是空值检查,但没有用。但是,如果我删除了null检查并仅保留,则查询确实起作用Contains()。但是,如果testID为null,则必须返回所有记录。

var testIDs = new int[] { 1, 3 };
var test = session.All<VendorBooking>(x => testIDs == null || testIDs.Contains(x.VendorServiceID)).ToList();
Run Code Online (Sandbox Code Playgroud)

(session.All只是利用context.Set<T>.Where()

引发异常:EntityFramework.SqlServer.dll中的“ System.NotSupportedException”

附加信息:无法比较'System.Int32 []'类型的元素。仅支持原始类型,枚举类型和实体类型。

在此处输入图片说明

非常感谢

.net c# lambda entity-framework

4
推荐指数
1
解决办法
3727
查看次数