我做了一个小应用程序来练习lambda表达式。我是新手使用这种技术,我想熟悉在我的日常编码中使用它们,因为我意识到它们有多么强大。
我创建了一个名为Pet
的班级,每个宠物都有Name
和Age
我已经为Pet
班添加了4只宠物。
我希望使用Where
和Select
条款获取年龄为1的宠物名称。但是,当我运行我的代码而不是返回宠物名称时,我得到System.Collections.Generic.List 1 [System.String]
我的代码如下
宠物类
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
计划类
var pets = new Pet[]
{
new Pet {Name="Sharo", Age=8 },
new Pet {Name="Rex", Age=4 },
new Pet {Name="Strela", Age=1 },
new Pet {Name="Bora",Age=1 }
};
p = pets.Where(pet => pet.Age == 1).Select(pet => pet.Name).ToList();
Console.WriteLine(p);
答案 0 :(得分:2)
Console.WriteLine(p)
隐含地调用对象ToString()
的{{1}}方法,该方法默认返回类型名称。
改为使用
p
其余代码看起来完全正确。
注意:如果你想练习更多的lambdas,你可以使用linq'来获得字符串concat:
Console.WriteLine(String.Join(",", p));
答案 1 :(得分:0)
执行ToList
后,您有List<String>
相反,你可以做
foreach(var pet in p)
Console.WriteLine(p.Name)