草庐IT

swift - 核心数据谓词按今天的日期过滤

如何在Swift中通过Date属性过滤CoreDataManagedObjects?目标是按今天的日期过滤获取的对象。 最佳答案 您不能简单地将您的日期与今天的日期进行比较:lettoday=Date()letdatePredicate=NSPredicate(format:"%K==%@",#keyPath(ModelType.date),today)它不会显示任何内容,因为您的日期不太可能是准确的比较日期(它也包括秒和毫秒)解决方案是这样的://Getthecurrentcalendarwithlocaltimezonevarc

ios - Swift - 组合谓词

有没有一种在Swift中组合谓词的方法?例如:letpredicate1=NSPredicate("self.label='foo'"))letpredicate2=NSPredicate("self.label='bar'"))letcombinedPredicate=NSPredicate("self.staticTexts.elementMatchingPredicate(%@).existsANDself.staticTexts.elementMatchingPredicate(%@).exists",predicate1,predicate2)这给了我一个错误,说谓词不能作为

arrays - 在 Swift 中,一个高效的函数,它根据谓词将一个数组分成 2 个数组

注意:我目前仍在使用Swift2.2,但也对Swift3解决方案开放我希望创建一个与filter非常接近的函数,除了它也保留不匹配的结果,并保持排序顺序。例如,假设您想过滤掉数组中可被3整除的数字,但仍保留不能被3整除的数字列表。选项1:使用filter与filter,您只能得到可被3整除的数字列表,而原始列表保持不变。然后您可以使用相反的谓词再次过滤原始列表,但这是不必要的第二遍。代码如下所示:letnumbers=[1,2,3,4,5,6,7,8,9,10]letdivisibleBy3=numbers.filter{$0%3==0}//[3,6,9]lettheRest=numb

c# - 通用 LINQ 查询谓词?

不确定这是否可行,或者我是否正确表达了我正在寻找的内容,但我的库中反复出现以下代码,并且想练习一些DRY。我有一组基于用户提供的简单搜索字段alaGoogle查询的SQLServer表。我正在使用LINQ根据搜索字符串中的内容编写最终查询。我正在寻找一种使用泛型并传入lambda函数的方法,以此创建一个可重用的例程:string[]arrayOfQueryTerms=getsTheArray();varsomequery=fromqindataContext.MyTableselectq;if(arrayOfQueryTerms.Length==1){somequery=someque

c# - 最小起订量 - 安装方法中的 LINQ 谓词

在我的方法中,我让我的存储库执行此操作:boolisConditionMet=MyRepository.Any(x=>x.Condition==true);我正在尝试像这样使用MOQ来模拟这个:MyMockedRepository.Setup(x=>x.Any(y=>y.Condition==true)).Returns(true);但是,当代码执行时,存储库调用总是返回false。有没有办法使用MOQ来做到这一点?**编辑-根据请求添加代码**我正在使用NHibernate,所以我的Any方法在我的基础存储库中并按如下方式实现:publicvirtualboolAny(Express

c# - 通用谓词的默认值作为参数

第一次问我:)我需要一些方法来使用格式上的泛型来定义默认谓词Func然后将其用作默认参数。像这样:publicboolBroadcast(bytecommand,MemoryStreamdata,boolasync,Funcpredicate=(Tt)=>true)当我这样做时,我得到了编译错误:'predicate'的默认参数值必须是编译时常量是否有一种我缺少的流畅的方法来执行此操作,或者是否应该使谓词函数可为空并相应地更改我的函数逻辑?谢谢, 最佳答案 方法参数的默认值必须是编译时常量,因为默认值实际上是由编译器复制到方法的所有

c# - 如何在 LINQ to Entities 中为 Entity Framework 对象使用谓词

我正在为我的数据访问层中的EntityFramework对象使用LINQtoEntities。我的目标是尽可能多地从数据库中进行过滤,而不对内存中的结果应用过滤逻辑。为此,业务逻辑层将谓词传递给数据访问层。我是说Func所以,如果我直接使用这个谓词,比如publicIQueryableGetAllMatchedEntities(FuncisMatched){returnqry=_Context.MyEntities.Where(x=>isMatched(x));}我遇到了异常[System.NotSupportedException]---{"TheLINQexpressionnode

c# - 有没有办法否定谓词?

我想做这样的事情:Listlist1=...Listlist2=...Predicatecondition=......list2.RemoveAll(!condition);...list2.AddRange(list1.FindAll(condition));但是,这会导致编译器错误,如!不能应用于Predicate.有什么办法吗? 最佳答案 您可以使用lambda表达式来定义一个匿名委托(delegate),它是否定谓词结果的结果:list.RemoveAll(x=>!condition(x));另一种选择:staticPre

c# - IndexOf 谓词?

我想在一个列表中找到一个元素的索引,该列表匹配某个谓词,有没有比以下更好的方法:varindex=list.IndexOf(list.Find(predicate));? 最佳答案 你在找List.FindIndex(predicate)吗? 关于c#-IndexOf谓词?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4680723/

c# - 创建通用谓词函数

首先,我不确定用什么术语来问这个问题,这可能是我自己搜索没有找到答案的原因。所以我正在使用LinqtoSQL(C#、.Net4),我想获得符合条件的所有用户的列表,我会做这样的基本操作:varusers=DataContext.Users.Where(x=>x.Criteria1=="something");但在这种情况下,我想匹配几个字段,问题是这些特定字段是一个常见的检查,我希望能够创建一个专用函数,我可以在我的任何用户查询中使用它检查此匹配项。为了更好地解释这一点,让我们举个例子:假设一个用户有5个标志,我想要一个共同检查以查看是否设置了这些标志中的任何。所以我可以这样写我的查询