首先,感谢StackOverflow社区.我是C#的新手,这个小组已经把我从火中拉出了很多次!
问题:我在使用C#FindAll方法时遇到了一些麻烦.具体来说,我不能让它工作,我知道这是我...
工作正常的东西:
public class City
{
public string Name {get;set;}
public string Country {get;set;}
}
public List<City> GetCities()
{
List<City> cities = new List<City>();
cities.Add(new City() { Name = "Istanbul", Country = "Turkey" });
// etc, add a bunch more cities, including multiple entries for
// some cities
return cities;
}
Run Code Online (Sandbox Code Playgroud)
现在什么行不通...(它返回所有城市或没有(取决于我如何摆弄语法).
public static List<> ReturnCityList(string CityName)
{
Cities = GetCities;
var RequestedCities = Cities.Findall(s => Name.Equals(CityName));
return RequestedCities
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我已经阅读了很多例子,但我遗漏了一些东西.
谢谢!
var RequestedCities = Cities.Findall(s => Name.Equals(CityName));
Run Code Online (Sandbox Code Playgroud)
Name来自哪里?你的意思是?
var RequestedCities = Cities.Findall(s => s.Name.Equals(CityName));
Run Code Online (Sandbox Code Playgroud)
甚至
var RequestedCities = Cities.Findall(s => s.Name == CityName);
Run Code Online (Sandbox Code Playgroud)
使用更简单的语法可以做同样的事情.
您没有使用s变量,即在迭代中保存当前元素的变量.这就是你可能需要检查的内容CityName.我怀疑你的版本甚至编译.也...
public static List<> ReturnCityList(string CityName)
Run Code Online (Sandbox Code Playgroud)
那不会编译.您不能使用空泛型参数,您需要指定返回值List<City>,然后您需要调用ToList()查询的结果.还有一些其他错误.
老实说你应该只返回一个,IEnumurable<City>因为调用者可能不需要修改返回值,只需枚举它.
还有一个挑剔; 方法参数camelCase按惯例使用,而不是PascalCase局部变量.
| 归档时间: |
|
| 查看次数: |
152 次 |
| 最近记录: |