Val*_*bha 0 c# asp.net-mvc ienumerable list
我试图从中删除对象 IEnumerable<ImportDataMappingModel> GridList
我尝试了以下选项,但没有它们正在工作.
value 是一处房产 ImportDataMappingModel
GridList.ToList().RemoveAll(o => o.value==null);
GridList=GridList.TakeWhile(o => o.value!=null);
Run Code Online (Sandbox Code Playgroud)
试试这个:
GridList = GridList.Where(o => o.value != null).ToList();
Run Code Online (Sandbox Code Playgroud)
您的第一次尝试,GridList.ToList().RemoveAll(o => o.value==null)创建列表的副本(ToList()调用),然后修改该副本,保持原始列表不变.
第二次尝试GridList=GridList.TakeWhile(o => o.value!=null)创建一个枚举,枚举时将返回第一个空项(如果有)之前的所有非空项.但它实际上并没有枚举新的可枚举,所以你永远不会真正创建新的集合.
要纠正第二次尝试,您需要做两件事:
将TakeWhile替换为Where.例如,如果您有一个包含三个条目的列表,其中第一个和第三个不为null,而第二个为null,则TakeWhile将仅返回第一个项目.如果您想要所有非空项,则需要使用Where.
调用ToList()将Where枚举器选择的项目复制到新列表中.
| 归档时间: |
|
| 查看次数: |
542 次 |
| 最近记录: |