我有一个foreach循环,读取一种类型的对象列表,并产生另一种类型的对象列表。有人告诉我,lambda表达式可以实现相同的结果。
var origList = List<OrigType>(); // assume populated
var targetList = List<TargetType>();
foreach(OrigType a in origList) {
targetList.Add(new TargetType() {SomeValue = a.SomeValue});
}
我们将考虑第一个列表类型是字符串,并希望将其转换为整数类型的列表。
List<String> origList = new ArrayList<>(); // assume populated
在原始列表中添加值。
origList.add("1");
origList.add("2");
origList.add("3");
origList.add("4");
origList.add("8");
创建Integer类型的目标列表
List<Integer> targetLambdaList = new ArrayList<Integer>();
targetLambdaList=origList.stream().map(Integer::valueOf).collect(Collectors.toList());
使用forEach打印列表值:
targetLambdaList.forEach(System.out::println);