Tag: lambda

用于重构安全的ArgumentException的Lambda表达式

更新 :这不再是来自C#6的问题,它引入了nameof运算符来解决此类情况(请参阅MSDN )。 注意 :有关此问题的一般化以及一些答案,请参阅“ 通过lambda表达式在运行时获取局部变量(和参数)的名称 ”。 我喜欢使用lambda表达式创建INotifyPropertyChanged接口的重构安全实现的想法,使用类似于Eric De Carufel提供的代码。 我正在尝试实现类似的东西,以便以重构安全的方式为ArgumentException (或其派生类)提供参数名称。 我已经定义了以下实用方法来执行null检查: public static void CheckNotNull(Expression<Func> parameterAccessExpression) { Func parameterAccess = parameterAccessExpression.Compile(); T parameterValue = parameterAccess(); CheckNotNull(parameterValue, parameterAccessExpression); } public static void CheckNotNull(T parameterValue, Expression<Func> parameterAccessExpression) { if (parameterValue == null) { Expression bodyExpression = parameterAccessExpression.Body; MemberExpression memberExpression = bodyExpression as MemberExpression; string parameterName […]

检查lambda表达式中的属性是否为null

我有一个对象列表,我试图绑定到列表视图。 我按两个属性排序。 存在一些问题,即某些记录可能没有其中一个属性。 这导致错误。 我希望它仍然绑定具有该属性的记录。 IEnumerable list = retailerList.Cast(); lvwRetailStores.DataSource = list.OrderByDescending(r => r.Properties[“RS_Partner Type”].ToString()) .ThenBy(r => r.Properties[“RS_Title”].ToString());

Lambda表达式的代码覆盖率

我在我的代码中看到了一个模式,其中lambda表达式显示为未覆盖在代码覆盖中,调试器会逐步执行代码并且没有条件块。 public CollectionModel() { List languages = LanguageService.GetLanguages(); this.LanguageListItems = languages.Select( s => new SelectListItem { Text = s.Name, Value = s.LanguageCode, Selected = false }). // <– this shows as not covered AsEnumerable(); } 这有点奇怪。 有任何想法吗?

如何在C#中将列标题添加到ListView

我有一个没有列的ListView控件。 一个清单 List MyList=new List(); 我需要为ListView中的每个列表MyList项创建列,并为序列号创建另一列。 例如,如果MyList包含”A”, “B” ,”C” 然后列表视图就像 我知道我们可以使用for或foreach循环来做到这一点 listView1.Columns.Add(“S.No”) for(int i=0;i<MyList.Count;i++) { listView1.Columns.Add(MyList[i]) } 但有没有办法使用LINQ或LAMBDA Expression ?

Linq lambda表达式中的布尔短路评估

我有以下Linq lambda表达式: private IEnumerable GetSubjectList() { User user = db.Users.Find(WebSecurity.CurrentUserId); return db.RequiredSubjects.Where(r => !r.Subject.Name.Contains(“Home”)) .GroupBy(r => r.Subject) .OrderByDescending(r => r.Count()) .Select(r => new SubjectSelectorSubjectGroup() { SubjectId = r.Key.SubjectId, SubjectName = r.Key.Name, IsInFavourites = HttpContext.Current.Request.IsAuthenticated && (user.Elective1 != null && user.Elective1.SubjectId == r.Key.SubjectId || user.Elective2 != null && user.Elective2.SubjectId == r.Key.SubjectId || user.Elective3 != null && […]

我希望能够使用lambda表达式来指定要通过wcf服务返回的值范围

我不知道这是否可能……但它会很酷。 问题是,是否有可能,但如果可能的话,还有一些例子。 我不确定您将使用什么方法签名来传递lambda表达式。 例如方法IList GetGroups() 你如何修改它以便能够将lambda表达式传递给它? 接下来的问题是如何编写lambda表达式以返回所有Group对象,例如 where .deleted == false或 where .DateAdded > aDate 是的,我想把月亮放在棍子上;)先谢谢你。 (编辑我认为这实际上有点不合理,因为实际上会获取数据的数据访问层……但是假设您正在通过服务查询某些对象集合而不必担心dal )。

使用lambda表达式从List 获取N max个数字

这是我的清单: List numbers=new List { 12, 5, -8, 4, 7, 28, 3, 22 }; 如何通过lambda获得4个最大数字:我需要这些数字: {28, 22, 12, 7}

Func没有退回任何东西?

这可能听起来有点像一个愚蠢的问题,但我怎么做一个不返回任何东西的Func变量?

使用lambda表达式注册类型

我想知道如何在UnityContainer中实现这样的function: container.RegisterType(Func) // deferred resolution

Lambda变量范围

例: myObject.Stub(s => s.MyMethod(null)).IgnoreArguments().Return(“bleh”); var s = “s”; 变量“s”在lambda中定义,另一个变量“s”在同一方法中定义为局部变量。 当我将鼠标hover在第一个“s”上时,Visual Studio告诉我“下面定义了一个冲突的变量”。 为什么这些相互矛盾; lambda中的“s”肯定不在其封闭的支架之外?