使用lambda函数从旧列表创建新列表

时间:2012-04-23 19:12:32

标签: c# list lambda

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

我想知道我是否有办法在原始列表中使用lambda函数为我提供一个新列表,其中InputRow.someProperty > 1表示所有对象。

这将为我提供一个InputRow对象列表,其中someProperty大于1。

4 个答案:

答案 0 :(得分:7)

你当然也可以这样做:

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

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

删除现有项目而不是创建新列表。

答案 1 :(得分:6)

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

List<InputRow> originalList = ...
List<InputRow> filteredList = originalList
    .Where(x => x.someProperty > 1)
    .ToList();

答案 2 :(得分:3)

不确定。你可以这样做:

var newList = inputRowList.Where(inputRow => inputRow.someProperty > 1).ToList();

答案 3 :(得分:2)

List<InputRow> newlist = oldlist.Where(x => x.someProperty > 1).ToList();

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