我需要将从浏览器收到的JArray转换为MyType对象列表。问题是我不想使用.ToObject<>扩展名,因为从浏览器发出的对象可能有丢失或额外的值,我无法更改反序列化器。我编写了自己的解析器来接收来自单个JObject的数据。用法:
foreach (var _object in _jarray)
{
using (var tp = new TokenParser(_object))
{
MyType test = new MyType()
{
id = tp.ConvertToInt("token_key")
};
}
}
我想做的是这样的事情
_jarray.ForEach(_object => {
using (var tp = new TokenParser(_object))
{
MyType test = new MyType()
{
id = tp.ConvertToInt("token_key")
};
}
});
我不想像以下那样投射元素:
_jarray.Select(x =>
(int)["token_key"]
);
我尝试根据LINQ equivalent of foreach for IEnumerable<T>编写此扩展程序,但似乎Action
需要T
作为参数类型。我不需要这个,因为JArray是一个JObject数组。
这可能实现吗?