return 在 if 语句中抛出转换错误

return in if statement throws conversion error

长篇大论提前致歉post。只是想把我所有的信息都告诉你。

我在方法中有一个 if 语句,如下所示:

var comparison = await SystemService.SearchCount();
var fileExporter = Configure();
var fileName = "SearchResults"

if (defaultValue <= comparison)
{
   var result = SearchResult.Rows.Where(s => VSR.Any(s2 => s2.ID == s.Values.FirstOrDefault()));
   var records = SearchResult.Rows.ToList();
   await Task.Yield();
   return fileExport.ToCsv(records, fileName);
}

我收到的错误是以下错误:

cannot convert from 'System.Collections.Generic.List<SearchRows>' to 'System.Collections.Generic.IList<SearchResults>'

我试图将 return 更改为显式转换为 IList,如下所示:

return fileExport.ToCsv((IList<SearchResults>)records, fileName);

这将让它在 Visual Studio 中构建,但是当我 运行 它并查看开发者工具时它会抛出 InvalidCastException:

System.InvalidCastException: Unable to cast object of type 'System.Collections.Generic.List[SearchRow] to type System.Collections.Generic.IList[SearchResult].

我在这里错过了什么?我没有发现代码有任何问题。

SearchResults 模型是要return编辑的记录列表(ID、姓名等)

SearchRows 模型用作列和行的包装器(我没有命名它们,它们与遗留代码一起出现)

recordsList<SearchRow> 类型,与 List<SearchResult> 类型不兼容,您要么必须将 SearchRows 转换为 SearchResults (例如,通过 Select) 或更改 ToCSV

接受的类型