【发布时间】:2012-04-23 19:12:31
【问题描述】:
我有以下内容:List<InputRow> 其中包含许多 InputRow 对象。
我想知道是否有办法让我在原始列表中使用 lambda 函数来给我一个新列表,其中 InputRow.someProperty > 1 用于所有对象。
这会给我留下一个 InputRow 对象的列表,它们的 someProperty 都大于 1。
【问题讨论】:
我有以下内容:List<InputRow> 其中包含许多 InputRow 对象。
我想知道是否有办法让我在原始列表中使用 lambda 函数来给我一个新列表,其中 InputRow.someProperty > 1 用于所有对象。
这会给我留下一个 InputRow 对象的列表,它们的 someProperty 都大于 1。
【问题讨论】:
你当然也可以这样做:
var list = new List<string>(){ "a", "b", "c" };
list.RemoveAll(s => s == "b");
这会删除现有的项目,而不是创建一个新列表。
【讨论】:
【讨论】:
RemoveAll 可以避免删除和重新创建列表。
当然。你可以这样做:
var newList = inputRowList.Where(inputRow => inputRow.someProperty > 1).ToList();
【讨论】:
List<InputRow> newlist = oldlist.Where(x => x.someProperty > 1).ToList();
这将在someProperty > 1 的条件下搜索您的旧列表,并使用.ToList() 将结果转换为列表
【讨论】: