JSON文字列値でプロパティを逆シリアル化/シリアル化する方法と、lambda式のLINQでWHERE句をフィルタリングする方法はありますか? filterRegionList
からエントリの少なくとも一つを含む行をフィルタリングするにはLINQ - JSON列とフィルタのデシリアライズ
void Main()
{
var regionList = new List<Row>() {
new Row { RegionJsonList = "[\"QLD\",\"NSW\"]" },
new Row { RegionJsonList = "[\"TAZ\",\"SA\"]" },
new Row { RegionJsonList = "[\"QLD\",\"VIC\"]" }
};
var filterRegionList = new List<string>() {
"QLD", "NSW"
};
var queryable = regionList.AsQueryable();
// this is obviously wrong, i just want to find the Row that contains one on filterRegionList
var result = queryable.Where(r => JsonConvert.DeserializeObject<string[]>(r.RegionJsonList).Contains(filterRegionList));
result.Count().Dump(); // should be 2
}
class Row
{
public string RegionJsonList { get;set; }
}
誰か?助けが必要。 –