所以我有一个对象列表,对象类本身包含一个包含多个值的数组。如何搜索列表中的所有对象'数组来寻找那个值?
示例:
[
{
"ObjArray": ["1234", 123"],
"Property1": "60",
"Property2": "64"
},
{
"ObjArray": ["4321", 321"],
"Property1": "112",
"Property2": "22"
},
{
"ObjArray": ["9999"],
"Property1": "2",
"Property2": "2"
}
]
我想寻找" 9999"在所有" ObjArray" s。我怎么能用LINQ做到这一点?
正如Habib指出的那样,我只需要一个简单的Contains子句。工作代码如下所示:
var result = mainList.Where(r => r.ObjArray != null && r.ObjArray.Contains("9999", StringComparer.OrdinalIgnoreCase)).FirstOrDefault();
答案 0 :(得分:2)
你可以这样做:
var query = mainList.Where(r => r.ObjArray.Contains("9999"));
或
var query = mainList.Where(r => r.ObjArray.Any(o => o == "9999"));
(除此之外,您的JSON似乎无效,数组中的第二个值需要一个起始双引号)
["1234", 123"]
//^^