我有国家数据库赞,
Country
-------
England
Germany
Italy
...
我将此数据源视为
DB.Countries.ToList();
我想要做的是检查新添加的国家/地区是否已存在,
只是喜欢,
if(DB.Countries.ToList().Contains(newAddedCountry))
{
..............
}
但我不知道如何将newAddedCountry
(字符串)转换为System.Collections.Generic.List<Country>
。
答案 0 :(得分:14)
if(DB.Countries.Any(c => c.Country == newAddedCountry))
{
// exists ..
}
答案 1 :(得分:6)
答案 2 :(得分:4)
尝试这样的事情
if(DB.Countries.Any(c => c.CountryName == newAddedCountry.CountryName ))
{
// exists ..
}
答案 3 :(得分:2)
您可以在Country
课程中将国家/地区名称与您的媒体资源进行比较。类似的东西:
if(DB.Countries.ToList().Any(r=> r.Name == newAddedCountry))
^^^^^^
Field/Property name holding the Name of Country
如果你想比较字符串忽略大小写,那么:
if(DB.Countries.ToList()
.Any(r=> r.Name.Equals(newAddedCountry, StringComparison.InvariantCultureIgnoreCase))
答案 4 :(得分:1)
使用Country
类的属性可能更容易,如下所示:
if (db.Countries.Select(x => x.Name).ToList().Contains(countryName))
{
...
}
或
if (db.Countries.Any(x => x.Name == countryName))
{
...
}
效率更高。
答案 5 :(得分:1)
假设Country
为列名:
if(DB.Countries.ToList().Any(c => c.Country == newAddedCountry))
{
//Do something
}
答案 6 :(得分:0)
如果我记得这个权利,则包含使用Equals方法来比较实例。因此,您需要在Countries类中实现Equals覆盖方法。而且无论如何 - 你试图比较String和Countries对象实例,所以当然不能正确地比较它们。
我会尝试使用LINQ解决方案:
List<Country> countries = DB.Countries.ToList();
if (countries.Any(x => x.column == newAddedCountry)) {
...
}
或x == newAddedCountry
如果它只是一个列表。