3

我有以下内容:List<InputRow>其中包含许多 InputRow 对象。

我想知道是否有一种方法可以让我在原始列表上使用 lambda 函数来为我提供一个新列表,InputRow.someProperty > 1用于所有对象。

这会给我留下一个 InputRow 对象的列表,它们的 someProperty 都大于 1。

4

4 回答 4

7

你当然也可以这样做:

var list = new List<string>(){ "a", "b", "c" };

list.RemoveAll(s => s == "b");

它删除了原处的项目,而不是创建一个新列表。

于 2012-04-23T19:15:45.260 回答
6

您可以使用 LINQ(.Where().ToList()扩展方法的结合):

List<InputRow> originalList = ...
List<InputRow> filteredList = originalList
    .Where(x => x.someProperty > 1)
    .ToList();
于 2012-04-23T19:13:36.623 回答
3

当然。你可以这样做:

var newList = inputRowList.Where(inputRow => inputRow.someProperty > 1).ToList();
于 2012-04-23T19:13:58.680 回答
2
List<InputRow> newlist = oldlist.Where(x => x.someProperty > 1).ToList();

这将在条件下搜索您的旧列表someProperty > 1并将结果转换为 List 使用.ToList()

于 2012-04-23T19:13:52.057 回答