草庐IT

表达沟通

全部标签

c# - 如何创建用于运行时排序的表达式树?

使用EntityFramework4,我尝试根据成员名称的集合实现动态排序。基本上,用户可以选择要排序的字段和排序的顺序。我看过表达式树示例,但无法将其拼凑在一起。以下是一些详细信息:列名集合:publicListsortColumns;sortColumns=newList();///Examplesubsetofvideofields.Thecollectionwillvary.sortColumns.Add("Width");sortColumns.Add("Height");sortColumns.Add("Duration");sortColumns.Add("Title")

c# - 基于子实体的属性构建 OrderBy Lambda 表达式

我正在尝试使用lambda表达式生成一个LINQOrderBy子句,并将实体的列名称作为字符串输入(在下面的“sortOn”变量中)。下面的代码适用于生成lambda的sortOn值,如“代码”p=>p.Code但我还想对lambda可能所在的子实体进行排序p=>p.Category.Description所以在这种情况下,我只想设置sortOn="Category.Description"并生成正确的lamdba表达式。这可能吗?我们欢迎任何有关执行此操作的最佳方法的建议。此代码适用于简单的情况:varparam=Expression.Parameter(typeof(Product

c# - 为什么 integer == null 在 C# 中是一个有效的 boolean 表达式?

如果integer(int类型的变量)不可为空,为什么integer==null在C#中是一个有效的boolean表达式?(我不反对,其实我也喜欢,只是我不知道可以) 最佳答案 尽管int本身是不可空的,但存在到int?的隐式转换,是可空的。此时,如果该结构在两侧都声明了具有相同类型的==运算符,那么它也将被提升以处理可为null的类型。所以这不能编译:publicstructFoo{}classTest{staticvoidMain(){Foox=newFoo();if(x==null){...}}}...但是如果您给Foo一些运

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”(对象)。请帮助我,因为我遇到了两个嵌套