用Linq和Reflection将VB转换为C#

时间:2015-09-04 19:36:59

标签: c# vb.net linq reflection

我正在开发一个将VB转换为C#的项目。这个特殊的Linq查询在VB中运行良好,但它让我适合尝试转换。

我正在努力的C#片段是小组的 prop.GetProperty(stringColumn).GetValue(s, null).ToString() 编译器错误是

  

无效的匿名类型成员声明符。必须使用成员分配,简单名称或成员访问声明匿名类型成员。

它还指出s中的select变量不存在。

VB

(From s In query Group By StringValue = 
    prop.GetProperty(stringColumn).GetValue(s, Nothing)
          Into NumTotal =
          Sum(Double.Parse(prop.GetProperty(numberColumn).GetValue(s, Nothing).ToString()))
          Order By NumTotal Descending Select StringValue, NumTotal)

C#

(from s in query group s by 
 new {prop.GetProperty(stringColumn).GetValue(s, null).ToString()} into NumTotal
    select new {
        StringValue = prop.GetProperty(stringColumn).GetValue(s, null),
        NumTotal = NumTotal.Sum(x =>
            Double.Parse(prop.GetProperty(numberColumn).GetValue(s, null).ToString()))})

我看到this,但我真的不明白Expression内容应该如何工作,并且不确定它是否应该成为我解决方案的一部分。 我在转换中缺少什么,为什么两个看似相似的查询表现得如此不同?

由于

0 个答案:

没有答案