草庐IT

where-clause

全部标签

c# - 在 C# : where to start? 中解析骰子表达式(例如 3d6+5)

所以我希望能够在C#中解析和计算“骰子表达式”。骰子表达式定义如下::=+|-|[]d(|%)|:=positiveinteger例如d6+20-2d3将被允许,并且应该评估为rand.Next(1,7)+20-(rand.Next(1,4)+rand.Next(1,4))另外d%应该等同于d100。我知道我可以拼凑出一些解决方案,但我也知道这似乎是一个非常典型的计算机科学类型的问题,因此我应该研究一些super优雅的解决方案。我希望我的解析结果具有以下功能:我应该能够输出表达式的规范化形式;我首先考虑骰子,按骰子大小排序,并且总是带有前缀。所以例如上面的示例将变为1d6-2d3+20

c# - System.Linq.Dynamic - 我可以在 WHERE 语句中使用 IN 子句吗

我有动态linqWHERE语句:dataContext.Table.Where("id=0Orid=1Orid=2Or...");我想更改为:dataContext.Table.Where("idIN(0,1,2,...)");但它不起作用。我怎样才能做到这一点以获得更好的性能? 最佳答案 来自Howtouse“contains”or“like”inadynamiclinqquery?//edit:thisisprobablybroken,seebelowids=newint[]{1,2,3,4};dataContext.Table

c# - 具有 OR 子句和空值的 lambda 表达式的 LINQ where 子句返回不完整的结果

问题简而言之我们在Where子句中使用了一个lambda表达式,它没有返回“预期”结果。快速总结在analysisObjectRepository对象中,有一些对象在名为Parent的属性中也包含父关系。我们正在查询此analysisObjectRepository以返回一些对象。细节下面的代码应该做的是,返回包含ID值的特定对象的根、第一个子对象(直接子对象)和孙对象。在下面的代码中,常识告诉我们,所有使3个单独的OR条件中的任何一个为真的结果都应该在结果中返回。ListanalysisObjects=analysisObjectRepository.FindAll().Where(

c# - 具有多个where参数的linq to sql查询

我目前正在使用EntityFramework在ASP.NETMVC4中编写搜索功能。然而,我遇到了一个障碍,我只能找到“坏”的解决方案。我的搜索函数返回一个包含4个参数的模型:StringNameStringStreetStringCodeStringProvinceListquery=(fromtinModelselectt).ToList();现在我想过滤我的搜索输入。但是,用户可以决定填写尽可能多的搜索字段。他可以决定使用姓名和街道,或姓名、街道和省份,或...我能找到的唯一真正的解决方案是使我的查询和IQueryable检查一个字段是否已经用if填充,然后使用.Where更新查

c# - 如何在 LINQ 中实现动态 'where' 子句?

我想要一个动态的where条件。在下面的例子中:varopportunites=fromoppinoppDC.OpportunitiesjoinorginoppDC.Organizationsonopp.OrganizationIDequalsorg.OrgnizationIDwhereopp.Title.StartsWith(title)selectnew{opp.OpportunityID,opp.Title,opp.PostedBy,opp.Address1,opp.CreatedDate,org.OrganizationName};有时我有Title有时我没有。我还想在wher

c# - 在 Select 和 Where 调用中重用 Linq to Entities 的 Expression<Func<T, TResult>

假设我有一个实体对象定义为publicpartialclassArticle{publicId{get;set;}publicText{get;set;}publicUserId{get;set;}}根据文章的某些属性,我需要确定给定用户是否可以删除该文章。所以我添加了一个静态方法来进行检查。像这样的东西:publicpartialclassArticle{publicstaticExpression>CanBeDeletedBy(intuserId){//Addlogictobereusedherereturna=>a.UserId==userId;}}现在我可以做using(MyE

C# Linq : Combine multiple . Where() with an *OR* 子句

我一直在搜索有关我当前问题的大量信息,但找不到解决该问题的真正答案。我正在尝试构建一个生成以下SQL的LINQ查询:SELECT*FROMTABLEWHERE(Field1=X,Field2=Y...)or(Field3=Z)在正常情况下我会这样做:Object.Where(c=>(c.Field1==X&&c.Field2==Y)||(c.Field3==Z))我不能使用这种方法,因为查询是通过使用多个.Where()调用构建的。举个例子://Thisisashortexample,therealworldsituationhas20fieldstocheckandtheyareal

c# - 以动态/编程方式将 WHERE 子句添加到 SQL

如何以编程方式将搜索条件添加到SQL存储过程?在我的应用程序(C#)中,我使用存储过程(SQLServer2008R2)ALTERPROCEDURE[dbo].[PROC001]@userIDvarchar(20),@passwordvarchar(20)ASSELECT*FROMtUsersWHERERTRIM(Name)=@userIDANDRTRIM(Password)=@password我想通过更多条件扩展此查询,现在我不知道有多少条件会因程序执行而使用此查询。2、3、6或20。我想以编程方式添加这些条件,例如:SELECT*FROMtUsersWHERERTRIM(Name)

c# - 给定 "where T : new()", "new T()"是否在内部使用 Activator.CreateInstance?

如果我有一个类型参数约束new():voidFoo()whereT:new(){vart=newT();}newT()是否会在内部使用Activator.CreateInstance方法(即反射)? 最佳答案 是的,这是真的。编辑2:这里很好地解释了方法和原因。http://www.simple-talk.com/community/blogs/simonc/archive/2010/11/17/95700.aspx为了验证我编译了如下方法:publicstaticTCreate()whereT:new(){returnnewT()

c# - Observable.Where 与异步谓词

有没有一种方便的方法可以将异步函数用作可观察对象上的Where运算符的谓词?例如,如果我有一个整洁但可能长时间运行的函数定义如下:TaskRank(objectitem);是否有将其传递到Where并保持异步执行的技巧?如:myObservable.Where(asyncitem=>(awaitRank(item))>5)过去,当我需要这样做时,我会使用SelectMany并将这些结果与原始值一起投影到新类型中,然后根据那个。myObservable.SelectMany(asyncitem=>new{ShouldInclude=(awaitRank(item))>5,Item=ite