我在C#中有以下几行代码 使用DataTables获取数据 这非常通用,可以帮助我使用多个表格。
object obj = ((DataRowView)editingElement.DataContext).Row[this.SelectedValuePath];
我想将此语句更改为通用LINQ语句,以便我也可以将它与多个LINQ表一起使用。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
我认为您不能使用LINQ来使您编写的代码更好或更优雅。我假设editingElement.DataContext
的类型是object
,所以无论如何你都需要编写演员。如果您忘记了转换,您的代码只是索引访问:
var rows = (DataRowView)editingElement.DataContext;
object obj = rows.Row[this.SelectedValuePath];
LINQ没有任何可以使索引更好的功能,所以我认为这是你能得到的最好的。一个可能的丑陋的事情是你得到object
作为结果,你需要将其转换为其他类型(例如CustomerInfo
)。
如果您从一开始就使用LINQ(填充DataContext
的数据),您可能会写这样的内容来访问客户:
var rows = (IEnumerable<CustomerInfo>)editingElement.DataContext;
CustomerInfo info = rows.Row[this.SelectedValuePath];
这会更优雅,因为你只需要一个演员。但是,我认为您的代码很好,LINQ无法帮助您(在这段代码中)。