DataTable 不包含 'AsEnumerable' 的定义
DataTable does not contain a definition for 'AsEnumerable'
我有一个数据表 dt,我正在尝试将其转换为可观察的集合。 我已经包含了对 System.Data.DataSetExtensions 的引用。
我首先将 dt 转换为 DataView,以便我可以对数据进行排序。然后我转换回 table。在我尝试转换为 IEnumerable 之后。当我这样做时,出现错误:Error CS1929 'DataTable' does not contain a definition for 'AsEnumerable'
下面是我正在尝试的。我确信我在这里遗漏了一些基本的东西。再一次,我仔细检查了参考资料。我什至删除并重新添加了引用,因为到目前为止我的搜索表明这是主要问题。
DataTable dt = GetData();
DataView dv = dt.DefaultView;
dv.Sort = "URLId desc"; //URLId is Column1
dt = dv.ToTable();
IEnumerable<MyClass> items = dt.AsEnumerable<MyClass>(); //Error occurs here
IList<MyClass> myItems = new ObservableCollection<MyClass>(items);
MyClass 是字符串和日期字段的简单集合。下面是 class 的构造函数。
public MyClass(string urlId, string urlAddress, string displayName)
{
URLId = urlId;
CommonName = displayName;
URLAddress = urlAddress;
DateLastTouched = DateTime.Now;
Preview = urlAddress;
Publish = false;
}
您正在使用
IEnumerable<MyClass> items = dt.AsEnumerable<MyClass>();
但我确定 AsEnumerable
不是 AsEnumerable<T>
,因此您可以试试
var items = dt.AsEnumerable().Cast<MyClass>()
编辑
(以上 returns EnumerableRowCollection<string>
所以你甚至可以
dt.AsEnumerable().Cast<MyClass>().AsEnumerable();
获得 IEnumerable<MyClass>
)
我有一个数据表 dt,我正在尝试将其转换为可观察的集合。 我已经包含了对 System.Data.DataSetExtensions 的引用。 我首先将 dt 转换为 DataView,以便我可以对数据进行排序。然后我转换回 table。在我尝试转换为 IEnumerable 之后。当我这样做时,出现错误:Error CS1929 'DataTable' does not contain a definition for 'AsEnumerable'
下面是我正在尝试的。我确信我在这里遗漏了一些基本的东西。再一次,我仔细检查了参考资料。我什至删除并重新添加了引用,因为到目前为止我的搜索表明这是主要问题。
DataTable dt = GetData();
DataView dv = dt.DefaultView;
dv.Sort = "URLId desc"; //URLId is Column1
dt = dv.ToTable();
IEnumerable<MyClass> items = dt.AsEnumerable<MyClass>(); //Error occurs here
IList<MyClass> myItems = new ObservableCollection<MyClass>(items);
MyClass 是字符串和日期字段的简单集合。下面是 class 的构造函数。
public MyClass(string urlId, string urlAddress, string displayName)
{
URLId = urlId;
CommonName = displayName;
URLAddress = urlAddress;
DateLastTouched = DateTime.Now;
Preview = urlAddress;
Publish = false;
}
您正在使用
IEnumerable<MyClass> items = dt.AsEnumerable<MyClass>();
但我确定 AsEnumerable
不是 AsEnumerable<T>
,因此您可以试试
var items = dt.AsEnumerable().Cast<MyClass>()
编辑
(以上 returns EnumerableRowCollection<string>
所以你甚至可以
dt.AsEnumerable().Cast<MyClass>().AsEnumerable();
获得 IEnumerable<MyClass>
)