我正在开发一个将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
内容应该如何工作,并且不确定它是否应该成为我解决方案的一部分。
我在转换中缺少什么,为什么两个看似相似的查询表现得如此不同?
由于