无法隐式转换类型';System.Collections.Generic.List<>';到'

本文关键字:List Generic lt gt Collections System 类型 转换 | 更新日期: 2023-09-27 18:27:38

我用XML在listview CRUD中编写应用程序。

将行添加到列表视图时遇到问题。尝试转换列表<>时出现错误到对象。

这是我的代码:

    public IEnumerable<object> GetRows()
    {
        List<DataLstViewEmail> rows = new List<DataLstViewEmail>();
        if (File.Exists("MyData.xml"))
        {
            // Create the query 
            var rowsFromFile = from c in XDocument.Load(
                        "MyData.xml").Elements(
                        "Data").Elements("Rows").Elements("Row")
                               select c;
            // Execute the query 
            foreach (var row in rowsFromFile)
            {
                rows.Add(new DataLstViewEmail(row.Element("col1").Value,
                        row.Element("col2").Value));
            }
        }
        return rows;
    }

无法隐式转换类型';System.Collections.Generic.List<>';到'

您应该执行

public List<DataLstViewEmail> GetRows()
{

而不是

public IEnumerable<object> GetRows()
{

除非T是值类型,否则每个List<T>都是IEnumerable<object>。我怀疑DataLstViewEmail是一个结构体。

您可以简单地将List<T>强制转换为IEnumerable<object>。只需更改退货声明

return rows.Cast<object>();