我正在使用此功能,它将根据州返回城市列表。这是功能。
public IList<string> GetCity(int index)
{
using (var db = new DataClasses1DataContext())
{
var city = db.mem_cities.Where(c => c.state_id.Equals(index)).Select(c => c.city_name).ToList();
return city;
}
}
现在我从我的代码后面调用这个函数就像这样。
var city = CustomerBLL.GetCity(index);
CustomerBLL
是我的class
现在我想用返回的城市填充我的DropDownList。 所以我做了这样的事情。
ddlCity.DataSource = city;
ddlCity.DataBind();
这很好用。早些时候我尝试使用foreach
循环
foreach (var c in city)
{
ddlCity.Items.Add(c.city);
}
但它出错了
string不包含字符串
的定义
所以我的问题是假设我想迭代列表应该从函数返回什么。
有人能指出我出错的地方吗?
答案 0 :(得分:3)
由于您要返回一个字符串列表,您可以简单地Add(c)
代替Add(c.City)
:
foreach(var c in city)
{
ddlCity.Items.Add(c);
}
或者您可以修改您的函数以返回IQueryable
public IQueryable<City> GetCity(int index)
{
using (var db = new DataClasses1DataContext())
{
var city = db.mem_cities.Where(c => c.state_id.Equals(index));
return city;
}
}
然后你可以这样做:
foreach(var c in city)
{
ddlCity.Items.Add(c.City);
}
答案 1 :(得分:2)
不是城市名称(City.Name),而是城市本身:
public IList<City> GetCities(int stateId)
{
return db.Cities.Where(c => c.StateId == stateId)
.ToList();
}
var cities = GetCities(x);
foreach (var c in cities)
{
ddlCities.Items.Add(c.CityName);
}
var newCity = new City { CityName = "Home", StateId = x };
cities.Add(newCity);
答案 2 :(得分:1)
GetCity
方法返回List<string>
。因此,当你编码
foreach(var c in city)
{
ddlCity.Items.Add(c.city);
}
每个c都是一个字符串。所以你应该做ddlCity.Items.Add(c)。