![]() |
1
34
实际上你可以把它大大缩短。你可以想到
|
![]() |
2
12
我认为如果使用一些约定和反射,所有的解决方案都可以改进,使方法更通用。假设您将数据表中的列命名为与对象中的属性相同的名称,然后您可以编写查看对象的所有属性的内容,然后在数据表中查找该列以映射值。 http://blog.tomasjansson.com/convert-datatable-to-generic-list-extension/ 往另一个方向走不应该那么难,重载函数应该那么难,这样您就可以提供要包含或排除哪些属性的信息。 编辑:
如果你有一个数据表,你可以写
更新: 添加了静态字典来存储反射操作的结果,以使其更快一些。我还没有编译代码,但它应该可以工作:)。 |
![]() |
3
8
|
![]() |
4
6
.ToList()位于错误的位置,如果某些字段可以为空,则必须处理这些字段,因为如果它们为空,则它们不会转换为Int64
|
![]() |
5
2
好吧,这是唯一的解决方案 这取决于你是否 数据库中的数据都是有效的,不包含任何会破坏上述内容的内容 当您不希望它是空字段时,可能是因为生成数据的左连接int eh sql。
如果您需要一些验证,但是您可能只需循环遍历数据行,生成如上所述的对象并将其添加到集合中。。。这也将允许您在一行中处理错误,并仍然处理其余的错误。 我就是这么看的
|
![]() |
6
1
可以使用下面这样的泛型类将数据表映射到模型类。
模型类
现在我们可以将此数据表转换为如下列表:
希望对你有帮助 |
|
7
0
另外,我还考虑添加一个单独的参数,该参数保存要从DataTable中读取的实际列名。在这种情况下,不要使用“row[property.Name]”,而是使用row[attribute.Name]或类似的内容来表示特定的属性。
|
![]() |
8
0
table.Map(); 或者使用Func调用以筛选值。
|
![]() |
9
0
下面是一个简单的方法,可以用Where条件在c中转换为泛型列表
放置包:
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |