【c#怪异的Lambda 语法】教程文章相关的互联网学习教程文章

c# – 使用Lambda / Linq获取集合中按字母顺序排列的项目列表?【代码】

我有一个对象列表.每个对象都包含一个名为“DisplayName”的属性. 我想创建另一个字符串对象列表,其中每个字符串表示初始列表中所有对象的DisplayName属性中的第一个字母或字符(可能是数字),我希望列表是不同的. 因此,例如,如果我的列表包含以下三个对象: (1)DisplayName =’Anthony’(2)DisplayName =’Dennis’(3)DisplayName =’John’ 我想创建另一个包含以下三个字符串的列表: (1)’A’(2)’D’(3)’J’ 任何想法如何使用la...

c# – 使用该lambda中包含的匿名类型定义lambda表达式【代码】

我试图避免在我的lambda表达式中使用动态类型来分组集合.该类型是在编译时匿名定义的(据我所知,这是明确无误的).我宁愿不将类型定义为一个完整的类,因为我在这个单一方法中只使用了几次. 示例代码:Func<MyData, dynamic> dataGrouping = md => new{md.Property1,md.Property2,md.Property3};var groupedData = myDataCollection.GroupBy(dataGrouping);虽然这会编译,但由于类型是动态的,因此在组内部没有智能感知或强类型. 我不能...

c# – 我可以使用带有params关键字的lambda表达式吗?【代码】

可以说我有以下代码:delegate int MyDel (int n); // my delegatestatic int myMethod( MyDel lambda, int n) { n *= n;n = lambda(n);return n; // returns modified n }这样,具有不同的lambda表达式,我可以调整Method的输出.myMethod ( x => x + 1, 5); myMethod ( x => x - 1, 5);现在,如果我不想在lambda表达式中做任何aritmethic,我可以使用:myMethod ( x => x, 5); // and lambda will simply return x我的问题是,...

c#lambda表达式根据不同列表中的给定条件从列表中删除项目【代码】

假设我有一个IList< int>我传递给非常慢的Web服务的ProductIds.那个电话看起来像这样:var WebServiceResponse = client.SomeCall(ProductIds);整数列表将包含给定页面的所有产品ID. 我有另一个清单,比如IList< Product>其中Product包含int ProductId成员属性.我想调用我的Web服务,但在此之前,我想删除ProductIds中的每个项目,其中包含具有匹配ProductId的其他列表中的Product.是否有一个衬垫可以为我做这个或我必须运行循环?我尝...

C#lambda IN子句错误【代码】

我在使用C#和lambdas创建IN子句时遇到问题. 我有以下方法GetUserList(string filtersByRoles) 变量string filtersByRoles可以保存逗号分隔的值,例如:“1,2”或“1,2,3”或“1,3,4”等…每个数字代表一个角色的唯一编号(in换句话说,RoleId). 然后我有以下C#lambda查询:var query = _userRepository.GetUserList();返回IQueryable< User> User是我的EntityFramework中的一个表. 一旦我验证filtersByRoles参数是否为空或空,我需要创...

c#新学生的代表,活动和Lambda Expr

我的尖头发老板要求我以C#的方式教育我们新的合作社(实习生).我大约需要30分钟才能完成代表,活动和Lambda表达式的主题.时间限制相当紧张,主题很广泛.由于我不是C#guru,我想要一些提示和指示. >由于我的时间很短,我应该针对上面列出的三个主题提出哪些要点?>在使用这三件事时,有什么好事和不要做的?>我可能有时间进行简短的Lambda Expr演示. LExpr最常见的用途是什么(可能是一个可枚举的Select().Where()语句??)我可以演示? 谢谢...

c# – Lambda事件处理程序范围【代码】

有人能给我一个雄辩,深入的解释,为什么这样可以:EventHandler e;private void foobar(){e = new EventHandler((o, s) => {somectl.LayoutUpdated -= e;}somectl.LayoutUpdated += e; }但这不是:private void foobar(){EventHandler e = new EventHandler((o, s) => {somectl.LayoutUpdated -= e;}somectl.LayoutUpdated += e; }这也不是:private void foobar(){EventHandler e;e = new EventHandler((o, s) => {somectl.LayoutU...

c# – 一个lambda表达式中的多个赋值操作【代码】

我正在尝试创建一个动态lambda表达式(从文本解析),它执行多个赋值.创建个人作业相当容易,但我仍然坚持如何将它们组合起来.所以我想要达到的目标是:Action<Entity> action = (entity) => { entity.Property1 = "1"; entity.Property2 = "2"; };有没有办法将多个Expression.Assign表达式合并为一个(因为Expression.Lambda只接受一个表达式作为输入)?– 编辑:因此,为了澄清我写的代码只是伪代码,所以错字(现在已更正)不会改变任何...

c# – 通过lambda查找列表是否包含另一个列表值【代码】

我怎么能用lambda做到这一点?要确定这两个列表是否具有相同的值.void Main(){var list1 = new List<string>{"a", "b", "c"};var list2 = new List<string>{"c", "d", "e"};bool listsHaveSameValue = false;foreach(var list1Value in list1){listsHaveSameValue = list2.Any(c => c.Equals(list1Value));if(listsHaveSameValue){break;}}Debug.WriteLine(listsHaveSameValue.ToString());}解决方法:你应该看看相交.var list1 = n...

c# – 步入VS2013中破坏的lambda表达式?

在VS2010和VS2012中,当为foreach循环的部分显示当前语句时,我可以进入lambda表达式: 我只需要按f11: 在VS2013中,这被打破了.当我按下f11时,当前语句直接转到循环变量: 我仍然可以通过为i%2 == 0表达式设置断点来进入lambda表达式,但是简单的f11更容易…这是VS2013中的错误还是我错过了某些设置?解决方法:确保已打开“Just My Code”调试选项. 转到选项 – >调试 – >一般并确保未选中“仅启用我的代码”.

c# – AutoMapper Project().to和可重用的lambda表达式【代码】

我在使用AutoMapper Project()获取可重用的lambda表达式时遇到问题.对于扩展方法.我正在使用AutoMapper 3.1.1. 我希望能够通过将lambda表达式定义为变量来重用它,但是在使用扩展方法时遇到问题. 注意下面显示的代码和lambda表达式是简化的,我的lambda表达式非常复杂,我想在很多地方重用它. 这是一个要重用的lambda表达式:Func<Product, bool> myLambda = x => (x.Season.Id == 3);代码块1使用Project().To<>和可重复使用的lambda,...

c# – 在另一个lambda表达式中使用lambda表达式【代码】

我需要组合两个lambda表达式,第二个表达式“包含”第一个表达式.我搜索了很多,但没有找到任何明确的答案…… 我想要做的是以下内容:第一个表达式“expression1”作为参数传递给方法,并且仅用于定义第二个lambda必须在哪个字段或属性上运行. 原理上,我正在尝试执行以下操作:// simple field selector : Expression<Func<T, string>> expression1 = obj => obj.field; // trying to use the field selector in 2nd expression : Ex...

c# – 输入类型在lambda表达式中自动更改【代码】

在使用Fluent Validation Must子句时,我注意到了一个非常奇怪的问题. 假设我有这样的模型:public class PhoneDetail {public int PrefixId { get; set; }public string Digits { get; set; } }这是验证器:public PhoneDetailValidator() {this.RuleFor(phone => phone.Digits).Must(x => x == null); }你认为x的类型是什么?串?是的,你是对的. 但是,这是什么? 它已将其类型从字符串更改为PhoneDetail.我正在使用Visual Studio ...

C#lambda表达式常量vs字符串【代码】

有人可以解释为什么我运行这个表达式:const string testValue = "ABC"; return NameDbContext.MasterNames.Where(m => m.Names.Any(n => n.LastName == testValue)).ToList();我得到了预期的结果,但是如果我使用testValue作为变量运行它会失败:string testValue = "ABC"; return NameDbContext.MasterNames.Where(m => m.Names.Any(n => n.LastName == testValue)).ToList();这似乎只发生在字符串上.使用int的类似代码可以正常...

c# – 如何阻止ReSharper在需要Action的lambda表达式上显示错误?

在Silverlight中,System.Windows.Threading的Dispatcher.BeginInvoke()接受一个Action< T>或代表调用. .NET允许我只传递lambda表达式.但ReSharper认为这是一个错误,说“无法解析方法’BeginInvoke(lambda表达式)’”:Dispatcher.BeginInvoke(()=> {DoSomething();}) 如果我在表达式周围显式创建Action,则错误就会消失:Dispatcher.BeginInvoke(new Action< object>(o => {DoSomething();})); 在这种情况下,我更喜欢最少量的代码以...