c# - 我可以将匿名类型作为参数传递给函数吗?

标签 c# vb.net linq linq-to-entities anonymous-types

看完this post我意识到我不能将匿名类型作为参数传递给函数。那么我还有哪些其他选择?

也许,将 Query.ToList 作为参数传递会有所帮助,还是我在重新发明轮子?

更新:我有以下查询,我想将其传递给一个函数:

Sub Test
    Dim Query = (From c In DB Select New With { .ElementName = c.Name })
    DoSomething(Query)
End sub

Private Function DoSomething(ByVal Q as object) as string
    Dim Query = From c In Q Select c
End Function

我得到的错误是

Expression of type 'Object' is not queryable

最佳答案

After reading this post i realized that i cannot pass an anonymous type as a parameter to a function. So what other options do i have?

帖子在撒谎。当然,您可以将匿名类型传递给方法。

Function DoSomething(Of T)(items As IEnumerable(Of T))
    …
End Function

Dim Query = (From c In DB Select New With {.ElementName = c.Name})
DoSomething(Query)

无论哪种情况,您对 DoSomething 的定义都是问题所在,因为 Object 当然不是可查询的对象。 ToList 根本没有帮助,因为结果仍然是匿名类型的集合。

关于c# - 我可以将匿名类型作为参数传递给函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6895145/

相关文章:

c# - LINQ GroupBy 与 SQLite.EF6 导致 'APPLY joins are not supported' 异常

c# - Web API 2 的静态对象

c# - 什么是NullReferenceException,如何解决?

c# - 在 LINQ 查询中使用 "contains"时检查列表是否不为空,否则选择所有记录

asp.net-mvc-3 - 如何在 ASP.NET Razor 表中编写汇总行代码?

mysql - 用户代码未处理 EvaluateException 找不到列 [年份]

c# - 在 try catch 中使用 try catch 好吗?

c# - 静态构造函数和类的同时使用

c# - 发布到 AWS ... Visual Studio 2017 中缺少

vb.net - 如何关闭所有表格?