我有一个用C#编写的应用程序。在该应用中,我将C#对象序列化为JSON。在稍后的时间点,我想查看单个对象是否与OData $ filter字符串“匹配”。换句话说,我想使用像Regex.Match
这样的OData $ filter。
我的问题是,有办法吗?我评估过的所有内容都使用LINQ。这意味着需要IQueryable
。这意味着我必须首先将C#对象添加到某个集合中。这似乎增加了开销。
是否可以像使用Regex.Match
方法一样使用OData $ filter?谢谢!
答案 0 :(得分:0)
基于您对我的评论的回答,除非我对您有误解。
您无需将对象存储在IQueryable中,以实现以下目的:
//your object, with [DataContract] and [DataMember] attributes
var yourObject = new YourObject();
//populate the properties or whatever you want with your object
yourObject.Blabla = 1;
//serialize your object into a string
var objectSerialized = JsonConvert.SerializeObject(yourObject);
//your Regex string pattern, something like this?
var pattern = Odata.Filter;
//Use Regex to try to match the pattern with the serialized object, no IQueryable needed
var match = Regex.Match(objectSerialized, pattern);
//See if the regex matched
if (match.Success)
//do something