我尝试在DataTable上使用LINQ,DataTable从sql中获取数据。因此,我有一个数据表,其中包含常用的列和行,它看起来就像sql select语句。现在,我需要从该数据中获取某些行和列(包括列名)。
我使用AsEnumerable将数据表转换为LINQ可以使用的内容,但我不确定它的确切作用。它是否将数据转换为对象数组,其中每行都成为一个对象?
我习惯于使用Javascript,它是较新的箭头函数,所以我想使用Linq和lambda来保持一致。
我正在尝试获取第一列值等于2018的行和列名称
DataTable myTable = getData(); // populates the datatable and I've verified the data
var linqTable = myTable.AsEnumerable().Select( x => x[0] = 2018);
我需要获取行和列的名称。例如,一个对象或对象数组。但是,上面的代码没有返回数据或列的名称,而只返回了两行2018。
我的目标是最终将这些数据序列化为json并将其发送到网页。
3条答案
按热度按时间hm2xizp91#
要获取列名:
qnakjoqk2#
The problem is Select() is projecting the objects into a new form. You are seeing 2018 because of '=' instead of '=='. You need to use Where()
You will still end up with a list of DataRows though. The DataTable object isn't really what you should be using because it already provides a nice way to filter its rows:
If you are trying to convert it to a list of objects you should use the Select() method something like:
niknxzdl3#
您可以创建以下函数:
并传递LINQ查询返回的任何类型的对象。
希望这对你有帮助。
Creating a DataTable From a Query (LINQ to DataSet)