草庐IT

表达力

全部标签

c# - 替换表达式主体中的参数名称

我正在尝试基于规范对象动态构建表达式。我创建了一个ExpressionHelper类,它有一个私有(private)表达式,如下所示:privateExpression>expression;publicExpressionHelper(){expression=(Expression>)(a=>true);}然后是一些简单的方法如下:publicvoidAnd(Expression>exp);我正在努力处理And方法的主体。我基本上想从exp中删除主体,用expression中的参数替换所有参数,然后将其附加到expression的末尾body和AndAlso。我这样做过:varne

c# - List.Sort 使用 lambda 表达式

我正在尝试使用lambda表达式对列表的一部分进行排序,但在尝试这样做时出现错误:Listlist=newList();list.Add(1);list.Add(3);list.Add(2);list.Add(4);//worksfinelist.Sort((i1,i2)=>i1.CompareTo(i2));//"Cannotconvertlambdaexpressiontotype'System.Collections.Generic.IComparer'becauseitisnotadelegatetype"list.Sort(1,2,(i1,i2)=>i1.CompareTo(

c# - LINQ to Entities 无法识别方法 'Int32 Parse(System.String)' 方法,并且无法将此方法翻译成存储表达式

我正在使用EntityFramework,我有一行代码将var转换回数据库的iint。varrecord=context.enrollments.SingleOrDefault(row=>row.userId==int.Parse(UserID)&&row.classId==int.Parse(ClassID));每当我尝试运行它时,我都会收到rhis错误。“LINQtoEntities无法识别‘Int32Parse(System.String)’方法,并且无法将此方法转换为存储表达式。”我也试过varrecord=context.enrollments.FirstOrDefault(

c# - 如何将 Foreach 语句转换为 linq 表达式?

如何将下面的foreach转换成linq表达式?varlist=newList();foreach(varidinids){list.Add(newBook{Id=id});} 最佳答案 这很简单:varlist=ids.Select(id=>newBook{Id=id}).ToList();或者如果您更喜欢查询语法:varlist=(fromidinidsselectnewBook{Id=id}).ToList();另请注意ToList()仅当您确实需要List时才有必要.否则,通常最好利用Linq的惰性求值能力,并允许Booko

c# - LINQ 命名标准 - Lambda 表达式

这个问题在这里已经有了答案:Lambdavariablenames-toshortname,ornottoshortname?[closed](11个答案)关闭9年前。我们通常遵循所有C#语法的编码/命名标准。例如,如果我们在方法中声明字符串,我们使用范围-数据类型-字段名格式。(lstrPersonName)ListicolPerson;privateLoadPersonName(){stringlstrPersonaName;}我在想我们如何遵循Lambda表达式中的命名标准。特别是当我们为funcdelegate定义参数时,我们使用像x这样的短名称。例如varlobjPerson

c# - 如何使用 lambda 表达式过滤 C# 中的列表?

我正在尝试过滤列表,以便生成仅包含布里斯类郊区的列表?c#Tempt1=newTemp(){propertyaddress="1russelstreet",suburb="brisbane"};Tempt2=newTemp(){propertyaddress="12bretstreet",suburb="sydney"};Listtlist=newList();tlist.Add(t1);tlist.Add(t2);ListtlistFiltered=newList();//tlistFiltered.howtofilterthissotheresultisjustthesuburbs

c# - Linq 嵌套列表表达式

我需要你在Linq表达式方面的帮助:我有带列表的嵌套对象,这是主要对象层次结构的样子(每个破折号都是子类的属性):Folder-name-ListSubfolders-name-ListDocuments-name-key有了这个对象层次结构,我有一个文档名称,我想搜索它并返回它的父文件夹(子文件夹)例子:Folder-name:Customer-ListSubfolders-name:Personal-ListDocuments-name:Resume-key:1如果我说:“Resume”,linq表达式应该返回我:子文件夹“Personal”(对象)。请帮助我,因为我遇到了两个嵌套

c# - 在 LinQ Lambda 表达式中连接两个列值

我是LinQ的新手,那些lambda对我来说似乎很棘手:(我有一个表,其中有两列。名字和姓氏。我正在使用LinQ填充gridview。protectedvoidPage_Load(objectsender,EventArgse){myLinQtoSQLClassDataContextobjDataContext=newmyLinQtoSQLClassDataContext();varallUserList=fromCurrentUserinobjDataContext.Users.Where(c=>c.Is_Deleted!=false)selectnew{CurrentUser.Fi

c# - 获取 LINQ 表达式中的最早日期

我在WebAPIController中有以下LINQ:MyDate=i.Products.FirstOrDefault().Date它按预期工作。但是,Products是一个Collection,因此可以有很多日期。上面只是选择了第一个。我真正想做的是找到时间最早的日期,然后选择那个日期。那看起来怎么样? 最佳答案 如果您只想要日期而不是整个产品,使用Max或Min会更清晰一些。MyDate=i.Products.Select(x=>x.Date).Max()如果您确实需要该产品,则需要按日期排序,然后选择第一个。MyProduct

c# - 用于过滤项目列表的 Lambda 表达式

我有一个项目列表,我想知道是否有人可以用lambda表达式帮我过滤这个列表。这是我的列表:List>myList=ExtractList();这是我的Item类的样子:publicclassItem{publicstringName{get;set;}publicstringAction{get;set;}}我想过滤此列表并仅获取项目名称=“ABC”且项目操作=“123”的项目列表。感谢您的帮助 最佳答案 简单:myList.SelectMany(sublist=>sublist).Where(item=>item.Name=="A