C# 在列表中选择大于0的JSON元素

C# 在列表中选择大于0的JSON元素,c#,json,lambda,delegates,C#,Json,Lambda,Delegates,我有一个Json字符串,我想从中选择值大于0的元素“initialUnits”并将其添加到列表中。 如何将“x=>x.initialUnits”转换为整数,以便能够测试它是正值还是负值 我尝试了“Int32.Parse(x=>x.initialUnits)”,它给出了错误“无法将lambda表达式转换为'string'类型,因为它不是委托类型”。 还是有其他方法可以实现这一点 var resultOpTrades = JsonConvert.DeserializeObject<RootOb

我有一个Json字符串,我想从中选择值大于0的元素“initialUnits”并将其添加到列表中。 如何将“x=>x.initialUnits”转换为整数,以便能够测试它是正值还是负值

我尝试了“Int32.Parse(x=>x.initialUnits)”,它给出了错误“无法将lambda表达式转换为'string'类型,因为它不是委托类型”。 还是有其他方法可以实现这一点

var resultOpTrades = JsonConvert.DeserializeObject<RootObject>(Jsontrades);
var Sellopentradeslist = resultOpTrades
                            .trades
                            .Where(x => x.initialUnits > 0)
                            .Select(p => p.price)
                            .ToList()
                            .Select(s => Math.Round(Convert.ToDouble(s), 4))
                            .ToList();
var resultOpTrades=JsonConvert.DeserializeObject(Jsontrades);
var Sellopentradeslist=resultOpTrades
.交易
.其中(x=>x.initialUnits>0)
.选择(p=>p.price)
托利斯先生()
.Select(s=>Math.Round(Convert.ToDouble,4))
.ToList();
Int32.Parse()方法将字符串作为参数。Lambda是匿名方法,用于传递操作、Func和谓词。当参数为字符串时,不能给出lambda。
你必须获取值(使用lambda或不使用lambda),然后做任何你想做的事情。

你到底是什么意思:将“x=>x.initialUnits”转换为整数请共享你的json和模型你不将
x=>x.initialUnits
转换为整数-你将
x.initialUnits
转换为整数,所以我怀疑你想
在哪里(x=>Int32.Parse(x=>x.initialUnits)>0)
.Where(x=>Int32.Parse(x.initialUnits)>0)
.as
“Int32.Parse(x=>x.initialUnits)”
没有意义。解析需要一个字符串,x.initialUnits是一个字符串。
x=>x.initialUnits
不是,它是一个空的lambda。在我看来,它要么是一个输入错误,要么是一个Int-duplicate字符串。如果没有实数,这里的代码不会重现错误,也不会提供足够的信息,因此我们可以为examp提供一个自定义转换器到正确的类型乐。