我有一个返回动态结果的搜索。因此,如果找不到结果,我会尝试显示标签。我遇到的问题是我不知道如何计算结果,因为它是动态的,不等于类型。
错误消息是:
运算符'!''无法应用类型的操作数 System.Collections.Generic.List和int
if (Page.IsValid)
{
string keyword = txtSearch.Text.Trim();
List<dynamic> results = SearchItems(keyword);
List<dynamic> Cresults = SearchContacts(keyword);
if(results != 0 || Cresults !=0)
{
//bind and return
LVI.DataSource = results;
LVI.DataBind();
// System.Threading.Thread.Sleep(500);
//Contact Bind return
LVC.DataSource = Cresults;
LVC.DataBind();
// System.Threading.Thread.Sleep(250);
lvAdmin.DataSource = results;
lvAdmin.DataBind();
LVCAdmin.DataSource = Cresults;
LVCAdmin.DataBind();
}
else{
NoResults.Visible = true;
}
答案 0 :(得分:7)
你不能只做:
if(results != 0 || Cresults !=0)
{
}
通过这种方式,您可以将实际的List
与0
进行比较,这显然会失败。
只是做:
if(results.Count != 0 || Cresults.Count !=0)
{
}
或者:
if(results.Any() || Cresults.Any())
{
}
答案 1 :(得分:4)
使用Count
类的List
属性:
if (results.Count != 0 || Cresults.Count != 0)
{
//rest of code
}
答案 2 :(得分:4)
您可以尝试使用计数
if(results.Count > 0 || Cresults.Count > 0)